Al setear el primer dato de un array DTO sale NullPointerException en Java (Solucionado)

Higarigaoka - Odaiba, Sin comentarios
Hola,

Si al realizar la declaración de un array que sea de tipo DTO y al setear el primer dato en la posición [0], el sistema te muestra un NullPointerException, se debe a que al crear un array de objetos, se crea el array pero no se crean los objetos. Ejemplo:

MiDTO miArrayDTO[] = new MiDTO[10];
System.out.println(miArrayDTO.length); // Funciona
System.out.println(miArrayDTO[0].isEmpty()); // NullPointerException

Después de la primera línea del código de arriba, se tiene el objeto miArrayDTO (se puede utilizar miArrayDTO.length), pero ese objeto solo contiene 10 referencias (miArrayDTO[0], miArrayDTO[1]...) a null; las instancias a las que apuntan todavía se tienen que asignar. Si no se asigna una instancia a esas referencias, al intentar invocar métodos o atributos se lanzará el NullPointerException.

Suponga que la clase MiDTO, tiene los siguientes datos:

private String Id;
private DatosDTO[] datos;

La solución a ese NullPointerException es la siguiente:

MiDTO[] miArrayDTO = new MiDTO[10];

miArrayDTO[0] = new MiDTO();
miArrayDTO[0].setId("0");

DatosDTO[] datos = new DatosDTO[2];

datos[0] = new DatosDTO();
datos[0].setCodigoDato("1000");
datos[0].setValorDato("Valor 1000");

datos[1] = new DatosDTO();
datos[1]. setCodigoDato("2000");
datos[1]. setValorDato("Valor 2000");

datos[2] = new DatosDTO();
datos[2]. setCodigoDato("3000");
datos[2]. setValorDato("Valor 3000");

miArrayDTO[0].setDatos(datos);

Listo, de está forma se soluciona ese error muy común en instancias de Arrays DTO.

Basado en:

0 comentarios :

Publicar un comentario