Vetor de objetos

Olá a todos!!Tenho este exemplo aqui:



public class TesteObjetos{
	public static void main(String[]args){
		
		Object[] obj =null;
		for (int i =0; i<=10; i++){
			obj[i] = "Teste" + i;
			i++;
			
			System.out.println(obj[i]);
		}
	}
}

Porque ele está me retornando nada!?

Você está setando o array como null.
Está retornando nada ou está dando uma NullPointerException?

O correto seria Object[] obj = new Object[ 10 ];

Falow!

[quote=davidbuzatto]Você está setando o array como null.
Está retornando nada ou está dando uma NullPointerException?

O correto seria Object[] obj = new Object[ 10 ];

Falow!

[/quote]

Mas e se ele quiser somente contar em off os objetos existentes, sem precisar visualizar o objetos? :lol:

Para utilizar um vetor é mandatório vc inicializá-lo ou fazê-lo apontar para um outro já criado e do mesmo tipo, quando vc cria variavél como null vc apenas criou a referência e não o vetor. Se, após feito isso, quiser o tamanho dele basta usar o atributo length da variável.
Mesmo assim seu código, do jeito que está continuará gerando erros, pois as variáveis do vetor(Object) que vc está chamando em System.out.println(obj[i]), tb não receberam nenhum objeto, dessa forma, elas tb mantém seu valor padrão null. Este último erro é causado por vc usar, não sei porque, o pós-incremento da variável i no meio do código.
Por último, se vc apenas corrigir para:

O correto seria Object[] obj = new Object[ 10 ];
no final vc ainda terá uma exceção do tipo ArrayIndexOutofBounds devido ao i++ que vc colocou no meio do código.

[quote=xwillianx]
Mas e se ele quiser somente contar em off os objetos existentes, sem precisar visualizar o objetos? :lol:[/quote]

Como assim em off? Para mim ainda é um mistério como ele quer contar algo que é null, e outra, ele nem está contando nada, está tentando atribuir algo a uma posição que nem existe. Ele vai ter uma bela NullPointerException ao tentar acessar uma referência null.

Neste caso ele poderia inicializa-lo em zero?

exemplo:

Object [] obj1 = new Object[0];

Se vc inicializar com 0, estará criando apenas uma posição no vetor.
No código que o nosso amigo postou, geraria uma excecao pois estouraria o vetor.

 		Object[] obj = new Object[0];
 		for (int i =0; i<=10; i++){
 		}	

Nesse caso, para não estourar, o certo e usar a var. length, como disse nosso amigo.

[code]	Object[] obj = new Object[0]; //apenas um laço
	for (int i =0; i obj.length; i++){
	}	[/code]

Um vetor é um Objeto. Todo objeto, assim como as variáveis locais (dentro dos metodos) antes de serem usados deve ser inicializados. Quando voce inicializa o vetor de objetos como a seguir:

Object[] obj = new Object[10];

vc está criando 11 posições, sendo que em cada posição estará com o valor padrao do tipo do vetor que no caso é um objeto.
Se voce fizer:

for (int i =0; i obj.length; i++) System.out.println(obj[i]);
será impresso null 11 vezes pois o valor padrão do object é null, assim como se o tipo do vetor fosse um int, seria impresso o numero 0 que é o padrao de int.

Sendo bem redundante, vc inicializou o vetor mas não disse o que tem em cada posição.

Espero ter ajudado.
Marck

Valew agoara entendir. [8)]

Pessoal,

estou fazendo um trabalho para faculdade e estou com dúvida de como resolver meu problema.

seguinte, tenho uma classe produtos(nome, preco, etc), uma classe entradaProduto e uma itemProduto.

tenho que registrar uma lista de produtos de uma vez só no db.

no caso, o usuário seleciona o produto e coloca quantidade e preço. depois ele seleciona outro produto e coloca quantidade e preço, e assim por diante.

minha dúvida é a seguinte: tenho que fazer um array de objetos? tem como fazer isso?

obrigado a todos!