Problema com ArrayList

6 respostas
M

Pessoal alguém poderia me ajudar com isso.

ArrayList[] Corpo = new ArrayList[20];

Corpo[i].add(“Qualquer coisa”);

o erro que me é apresentado é: java.lang.NullPointerException

6 Respostas

foia

ArrayList[] Corpo = new ArrayList[20];

Corpo[i] = new ArrayList();
Corpo[i].add(“Qualquer coisa”);

flw me !!

Alexandre

Qual versão do Java você está usando?
Porque eu nunca vi uma classe sendo iniciada da forma como você descreveu:

ArrayList corpo = new ArrayList[20];

e sim

ArrayList corpo = new ArrayList(20);

Este construtor faz com que você crie um ArrayList VAZIO, com a capacidade de 20 elementos…mas eles ainda não existem dentro do objeto. Para incluir um elemento nesse objeto deve-se fazer o seguinte:

corpo.add(0, "Qualquer coisa...");

Esse método cria um objeto na posição desejada do ArrayList.
Uma dica, procure sempre quando for criar objetos que implemente uma interface, criar a variável do tipo da interface, nesse exemplo ficaria:

Collection corpo = new ArrayList(20);

Qualquer coisa, entre em:
http://java.sun.com/j2se/1.4.2/docs/api/index.html

Falow!

luiz_ross
O problema é que vc esta tentando acessar uma variavel que nem declarada esta

Corpo[i].add("Qualquer coisa");

Essa variavel i não esta declarada em lugar nenhum
C

Vc tah querendo criar um Array de ArrayList?

Acho que não, então vc deve criar um Arraylist desse modo: Collection
Corpo = new ArrayList(20) ou Arraylist Corpo = new ArrayList(20).

Tá dando NullPointer pq vc tah acessando um Arraylist que não está instaciado qdo vc faz : Corpo[i].add(“alguma coisa”), a variável nesse index possui um valor null, pq qdo vc cria um array do modo convencioanal, os seus objetos recebem como valor padrão null. Se fosse inteiro seria 0, por exemplo.

[]'s

_fs

Resumindo, esse tipo de instanciação:

Object[] obj = new Object[ tamanho ];

Cria um array de objetos, sendo que estes não estão inicializados. No seu caso, você criou um array de ArrayLists hehe

Se você quer criar um ArrayList com tamanho fixo, faça como sugeriram

ArrayList l = new ArrayList( tamanho );
M

Valeu ae pessoal, eu queria mesmo era criar um array de arraylist e estava com problema pois não tinha chamado a classe construtora.

a resolução foi essa:

for(int i=0;i<40;i++){

ArrayList Corpo[i] = new ArrayList();

}
Criado 22 de novembro de 2004
Ultima resposta 23 de nov. de 2004
Respostas 6
Participantes 6