これはJava上の初心者の質問ですが、私はその頭の中で頭を上げるように見えません。クラスローダーが静的変数をロードする方法の説明
私が原因次の行
String [] listCode = new String [LIST_INTEGER.length];
内のNullPointerExceptionに私のクラス
private static final String [] LIST_CODE = gerarListCode();
private static final int [][] LIST_INTEGER = new int [][] {
{947,947}, {110,103},
{947,958}, {110,120},
{947,954}, {103,107},
{947,967}, {110,99,104}};
private static String [] gerarListCode()
{
String [] listCode = new String [LIST_INTEGER.length];
for (int i=0 ; i<LIST_INTEGER.length ; i++)
{
//do some stuff
}
return listaUnicode;
}
このコードは、私の初期化例外を与えているの内側に次のコードを持っているが、変数LIST_INTEGERが、その時にnullであるようです時間。
誰かが理由を説明できますか?つまり、他のすべての変数を完全にロードする前にメソッドを呼び出しますか?
LIST_CODEより前の行にはLIST_INTEGERがあります – Ron