私はオブジェクトの配列を持っているので、本質的にはオブジェクト参照の配列です。私が参照しているクラスの中には、別の参照があります。このデータ構造を初期化する必要がありますが、初期化中にクラッシュします。参照クラス内で参照を初期化しようとしていますが、常にnullのままなので、まだ理解していないJavaの「もの」がいくつかあります。これはとても単純なようですが、とてもイライラします。問題の簡単な例を次に示します。
public class ref1
{
public int myInt;
}
public class ref2
{
public ref1 myRef;
}
public ref2 buffer[];
int i;
// Code to initialize the above data structures:
buffer = new ref2[255];
for (i=0; i<255; i++)
{
buffer[i] = new ref2();
buffer[i].myRef = new ref1(); // (1) ALWAYS returns null????
}
最終的に、上記のコードは、(1)マーカーがある行で「ArrayOutOfBoundsException」を使用してクラッシュします。デバッガーで2番目に気付くのは、myRefが常にnullに設定されていることです。ref1オブジェクトを作成して参照できないのはなぜですか?????
(1)でマークされた行をコメントアウトすると、例外トラップがないため、問題が発生します。
これを完全な初心者に説明できる人に感謝します...