Erläuterung, wie Classloader statische Variablen lädt
Ok, das ist eine Anfängerfrage auf Java, aber ich kann es nicht verstehen.
Ich habe den folgenden Code in meiner Klasse
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;
}
Dieser Code gibt mir eine Initialisierungsausnahme aufgrund einer Nullpunkt-Ausnahme in der folgenden Zeile
String [] listCode = new String [LIST_INTEGER.length];
Anscheinend ist die Variable LIST_INTEGER zu diesem Zeitpunkt null.
Kann mir jemand erklären warum? Ist der Klassenladeprozess linear, dh ruft er die Methode auf, bevor alle anderen Variablen vollständig geladen werden?