あなたはあなたのコードについてあまり明確ではありませんが、私があなたを正しく理解していれば、次のようなものがあります:
byte[] temp = null;
methodThatAllocatesByteArray(temp);
// temp is still null.
これがあなたの言っていることの正しい理解である場合、問題は temp が何も参照していないことです。その参照を別のメソッドに送信すると、(同じ参照を使用するのではなく) その参照のコピーが作成されるため、その参照を変更すると (パラメーター変数に割り当てて)、ローカル メソッドの参照のみが変更されます。あなたがする必要があるのはbyte[]
、次のようなメソッドから new を返すことです:
public byte[] methodThatAllocatesByteArray() {
// create and populate array.
return array;
}
次のように呼び出しますbyte[] temp = methodThatAllocatesByteArray()
。または、最初に配列を初期化してから、その配列への参照を次のように他のメソッドに渡すことができます。
byte[] temp = new byte[size];
methodThatAllocatesByteArray(temp);
この場合、 のパラメータはmethodThatAllocatesByteArray
と同じ配列を指すため、temp
それに対する変更 (別の配列または null への再割り当てを除く) には、 を介してアクセスできますtemp
。