E ai pessoal blz?
Estou com um problema em lista de objetos, acredito que é simples, lá vai…
Imagine que estamos usando o padrão DAO, e temos a classe modelo e a classe DAO, na classe DAO onde fica toda a persistência crio um método listAll que me rétorna uma lista de objetos. Ai vem o problema, quando eu faço o loop e dentro do loop eu dou o new no objeto ele funciona normal, adiciona todos os objetos normalmente dentro da lista, no entanto quando eu dou o new fora da lista, toda vez que eu adiciona que eu atualizo o registro ele muda o valor do mesmo dentro da lista, ou seja a lista fica igual para todos os objetos. Vou dar um exemplo de código bem básico…
[code]public class Teste {
private int teste = 0;
private String nome;
public int getTeste() {
return teste;
}
public void setTeste(int teste) {
this.teste = teste;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public void clear(){
setNome(null);
setTeste(0);
}
}[/code]
import java.util.ArrayList;
import java.util.List;
public class TesteDAO {
public List<Teste> ListAll(){
List<Teste> lista = new ArrayList<Teste>();
for (int i = 1; i < 4 ; i++) {
// Imaginem que aqui ele conecta no banco de dados e buca os registros....
Teste teste = new Teste();
teste.setNome("teste " + i);
teste.setTeste(i);
lista.add(teste);
}
return lista;
}
}
Agora o problema é o seguinte se toda hora dentro do loop eu crio um novo objeto, imagine um sql por exemplo q retorne 1 milhão de linhas ou mais, haja memória para suportar toda hora a criação de um novo objeto,
Bem alguém tem alguma ideia de como posso melhorar esse código?
Aguardo retorno.
Vlw pessoal, abraços…