Erro - Iteração com Matriz de Objetos bidimensional

	int x=0;
	int y=0;
	for (Object objX[] : repObj) {
		for (Object ObjY : objX) {
		System.out.println(x+"-"+y+"-"+repObj[x][y].getClass().getName());
		y++;
		}
		x++;
		y = 0;
	}

Chega a mostrar todas classes mas apresenta um erro de nullpointerexception também. Alguém sabe o que pode ser ?

A resposta para um NullPointerException é sempre a mesma - debugue seu código, e veja o que ficou nulo (se é repObj[x] ou repObj[x][y]). Depois, veja no seu código onde é que você esqueceu de inicializar repObj[x] ou repObj[x][y].

public class TestaRepObj {
private static Object[][] repObj = new Object[4][4];
public static void main(String[] args) {
repObj[0][0] = new Clientes[50];
repObj[0][1] = new Pedidos[50];
repObj[0][2] = new Vendas[10][50];
repObj[0][3] = new Vendedores[50];

	repObj[1][0] = new Clientes[50];
	repObj[1][1] = new Pedidos[50];
	repObj[1][2] = new Vendas[10][50];
	repObj[1][3] = new Vendedores[50];

	repObj[2][0] = new Clientes[50];
	repObj[2][1] = new Pedidos[50];
	repObj[2][2] = new Vendas[10][50];
	repObj[2][3] = new Vendedores[50];

	int x=0;
	int y=0;
	for (Object objX[] : repObj) {
		for (Object ObjY : objX) {
		System.out.println(x+"-"+y+"-"+repObj[x][y].getClass().getName());
		y++;
		}
		x++;
		y = 0;
	}

Não era pra dar problema … abaixo, a saída:

Exception in thread “main” java.lang.NullPointerException
at br.com.remtecnology.TestaRepObj.main(TestaRepObj.java:25)
0-0-[Lbr.com.remtecnology.Clientes;
0-1-[Lbr.com.remtecnology.Pedidos;
0-2-[[Lbr.com.remtecnology.Vendas;
0-3-[Lbr.com.remtecnology.Vendedores;
1-0-[Lbr.com.remtecnology.Clientes;
1-1-[Lbr.com.remtecnology.Pedidos;
1-2-[[Lbr.com.remtecnology.Vendas;
1-3-[Lbr.com.remtecnology.Vendedores;
2-0-[Lbr.com.remtecnology.Clientes;
2-1-[Lbr.com.remtecnology.Pedidos;
2-2-[[Lbr.com.remtecnology.Vendas;
2-3-[Lbr.com.remtecnology.Vendedores;

repObj[2][3] existe, mas repObj[3][3] não.

Seu código está tentando acessar repObj[3][3] :frowning:

Desculpe … falha minha … acabei de ver meu vacilo

Obrigado

Uma coisa que não entrou no JDK 8 foi uma coisa que existe no Groovy mas foi rejeitada. A ideia é você ter um operador “?.” que é igual ao “.”, mas em vez de criar um NullPointerException se o lado esquerdo for null, simplesmente retorna null.

O seu exemplo seria, se essa modificação na linguagem tivesse entrado:

System.out.println(x+"-"+y+"-"+repObj[x][y]?.getClass().getName());