Explicación de cómo el cargador de clases carga variables estáticas
Ok, esta es una pregunta de novato en java, pero parece que no puedo entenderlo.
Tengo el siguiente código dentro de mi clase
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;
}
Este código me está dando una excepción de inicialización debido a una excepción de nullpointer en la siguiente línea
String [] listCode = new String [LIST_INTEGER.length];
Parece que la variable LIST_INTEGER es nula en ese momento.
¿Alguien puede explicar por qué? ¿el proceso del cargador de clases es lineal, en otras palabras, invoca el método antes de cargar por completo todas las demás variables?