Problema com Collection List (Me ajudem, é urgente)

9 respostas
analyser

Estou com um problema, tenho um sisteminha de loja de cds, e no meu sistema tenho 2 classes sendo uma chamada “CD” que é meu javabeans e a outra que tem 4 metodos.

– Cadastrar CD
– Remover CD
– Buscar CD
– Listar CD

ai que vem o problema veja abaixo (resumido):

o problema é o seguinte declarei um List como um atributo global.

List<CD> itens = new ArrayList<CD>();

public void cadastrar (CD cd){
     itens.add(cd);
      /*Aqui imprimi 1 normal, se eu mando cadastrar outro e continua imprimindo um.
     System.out.println(itens.size());
}

public void consultar(){
       System.out.println(itens.size()); // aqui imprime 0
}

minha pergutna, por que imprime zero sendo que meu itens esta declarado global e não local

9 Respostas

ddduran

você por acaso não estaria re-instanciando essa classe que tem essa lista como atributo ne?

por que toda vez que essa classe for instanciada será criada uma nova lista logo ela será “zerada”
ai você adiciona 1 aparece 1, você só manda consultar aparece 0

rodrigo_corinthians

Liga pro 190…

Zueira entaum como o amigo acima falow provavelmente vc está instanciando o List sempre no construtor ou em outro lugar, tanb pelo amor neh manda o código inteiro que fica mais fácil ajudar…

analyser

ddduran:
você por acaso não estaria re-instanciando essa classe que tem essa lista como atributo ne?

por que toda vez que essa classe for instanciada será criada uma nova lista logo ela será “zerada”
ai você adiciona 1 aparece 1, você só manda consultar aparece 0

Po galera não sou tao analfabeto assim tb né rsrss, não to instanciando, tenho na minha main um while que semper fica perguntando a opção do cliente e enviando para o metodo correto.

Não estou com o código inteiro aqui, mais o resto é só tratamento e essas coisas, o que importa é isso que mostrei.

Abraços

A

analyser:
Estou com um problema, tenho um sisteminha de loja de cds, e no meu sistema tenho 2 classes sendo uma chamada “CD” que é meu javabeans e a outra que tem 4 metodos.

– Cadastrar CD
– Remover CD
– Buscar CD
– Listar CD

ai que vem o problema veja abaixo (resumido):

o problema é o seguinte declarei um List como um atributo global.

List<CD> itens = new ArrayList<CD>();

public void cadastrar (CD cd){
     itens.add(cd);
      /*Aqui imprimi 1 normal, se eu mando cadastrar outro e continua imprimindo um.
     System.out.println(itens.size());
}

public void consultar(){
       System.out.println(itens.size()); // aqui imprime 0
}

minha pergutna, por que imprime zero sendo que meu itens esta declarado global e não local

public void cadastrar (CD cd){

itens.add(cd);

/*Aqui imprimi 1 normal, se eu mando cadastrar outro e continua imprimindo um.

System.out.println(itens.size());

}

cara seguinte neste codigo vc naum pode passar o objeto CD para a lista, pq o objeto esta vazio por isso que vai imprimir sempre zero, eu aconselho vc fazer o seguinte

public void cadastrar(Class cd){

itens.add(cd);

}

dai vc popula o objeto CD cd, manda para o medodo de cadastrar manda imprimir ai sim ele vai imprimir quantos objetos existem.

vlws

analyser

ddduran:
você por acaso não estaria re-instanciando essa classe que tem essa lista como atributo ne?

por que toda vez que essa classe for instanciada será criada uma nova lista logo ela será “zerada”
ai você adiciona 1 aparece 1, você só manda consultar aparece 0

Po galera não sou tao analfabeto assim tb né rsrss, não to instanciando, tenho na minha main um while que semper fica perguntando a opção do cliente e enviando para o metodo correto.

Não estou com o código inteiro aqui, mais o resto é só tratamento e essas coisas, o que importa é isso que mostrei.

Abraços

analyser

Alessandro_Alves:
analyser:
Estou com um problema, tenho um sisteminha de loja de cds, e no meu sistema tenho 2 classes sendo uma chamada “CD” que é meu javabeans e a outra que tem 4 metodos.

– Cadastrar CD
– Remover CD
– Buscar CD
– Listar CD

ai que vem o problema veja abaixo (resumido):

o problema é o seguinte declarei um List como um atributo global.

List<CD> itens = new ArrayList<CD>();

public void cadastrar (CD cd){
     itens.add(cd);
      /*Aqui imprimi 1 normal, se eu mando cadastrar outro e continua imprimindo um.
     System.out.println(itens.size());
}

public void consultar(){
       System.out.println(itens.size()); // aqui imprime 0
}

minha pergutna, por que imprime zero sendo que meu itens esta declarado global e não local

public void cadastrar (CD cd){

itens.add(cd);

/*Aqui imprimi 1 normal, se eu mando cadastrar outro e continua imprimindo um.

System.out.println(itens.size());

}

cara seguinte neste codigo vc naum pode passar o objeto CD para a lista, pq o objeto esta vazio por isso que vai imprimir sempre zero, eu aconselho vc fazer o seguinte

public void cadastrar(Class cd){

itens.add(cd);

}

dai vc popula o objeto CD cd, manda para o medodo de cadastrar manda imprimir ai sim ele vai imprimir quantos objetos existem.

vlws

Cara é uma versão resumida do codigo ja to enviando ele com os dados, e mesmo se tive-se vazio meu objeto ele teria de armazenar pois instanciei ele, não importa se ta “setado” os dados ou não.

ddduran

analyser:
ddduran:
você por acaso não estaria re-instanciando essa classe que tem essa lista como atributo ne?

por que toda vez que essa classe for instanciada será criada uma nova lista logo ela será “zerada”
ai você adiciona 1 aparece 1, você só manda consultar aparece 0

Po galera não sou tao analfabeto assim tb né rsrss, não to instanciando, tenho na minha main um while que semper fica perguntando a opção do cliente e enviando para o metodo correto.

Não estou com o código inteiro aqui, mais o resto é só tratamento e essas coisas, o que importa é isso que mostrei.

Abraços

Bom não posso intuir qual seu nivel de conhecimento, só tentei ajudar com o pouco de informação que você me passou
ve se o objeto que você está inserindo não é nulo (algumas implementações de List ignoram valores nulos)

fora isso deve ser algum detalhe idiota, que são os mais dificeis de achar

ddduran

analyser:
ddduran:
você por acaso não estaria re-instanciando essa classe que tem essa lista como atributo ne?

por que toda vez que essa classe for instanciada será criada uma nova lista logo ela será “zerada”
ai você adiciona 1 aparece 1, você só manda consultar aparece 0

Po galera não sou tao analfabeto assim tb né rsrss, não to instanciando, tenho na minha main um while que semper fica perguntando a opção do cliente e enviando para o metodo correto.

Não estou com o código inteiro aqui, mais o resto é só tratamento e essas coisas, o que importa é isso que mostrei.

Abraços

Bom não posso intuir qual seu nivel de conhecimento, só tentei ajudar com o pouco de informação que você me passou
ve se o objeto que você está inserindo não é nulo (algumas implementações de List ignoram valores nulos)

fora isso deve ser algum detalhe idiota, que são os mais dificeis de achar

ddduran

Bom fiz aqui tambem o seguinte codigo

public class Teste {
	List<Teste> lista = new ArrayList<Teste>();
	
	public void add(Teste t){
		lista.add(t);
		System.out.println(lista.size());
	}
	
	public static void main(String[] args) {
		Teste t = new Teste();
		for (int i = 0;i<10;i++)
			t.add(new Teste());
	}
	
}

e funcionou normalmente

Criado 3 de setembro de 2007
Ultima resposta 3 de set. de 2007
Respostas 9
Participantes 4