Boa tarde,
Estou tendo um erro quando tento adicionar um registro em um List<Objeto>. O programa le os registros no banco e cria o objeto, mas toda vez que adiciono um novo objeto na lista o sistema altera todos os objetos da lista para o ultimo objeto adicionado. Ou seja, no final da execução, tenho todos os objetos iguais.
Alguem já passou por isso?
import br.com.banco.conex;
import br.com.entidade.Itens;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
/**
*
* @author guilherme
*/
@WebService()
public class pegarItens {
/**
* Operação de serviço web
*/
@WebMethod(operationName = "pegarItens")
public String pegarItens(@WebParam(name = "cod-rep") int codRep) {
try {
conex cxEMS2ESP = new conex("EMS2ESP");
sql = "select pub.\"ext-item\".\"it-codigo\", pub.\"fruki-ext-items\".\"nome-reduzido\", pub.\"ext-item\".\"char-1\" as \"unidades\", " + "pub.\"esp-origem\".\"descricao\" as \"origem\", pub.\"esp-sabor\".\"descricao\" as \"sabor\", pub.\"esp-embalagem\".\"descricao\" as " + "\"embalagem\" from pub.\"ext-item\", pub.\"esp-origem\", pub.\"esp-sabor\", pub.\"fruki-ext-items\", pub.\"esp-embalagem\" where pub.\"ext-item\"." + "\"cod-origem\" = pub.\"esp-origem\".\"cod-origem\" and pub.\"ext-item\".\"cod-sabor\" = pub.\"esp-sabor\".\"cod-sabor\" and " + "pub.\"ext-item\".\"it-codigo\" = pub.\"fruki-ext-items\".\"it-codigo\" and pub.\"ext-item\".\"cod-embalagem\" = pub.\"esp-embalagem\".\"cod-embalagem\" and pub.\"ext-item\".\"it-codigo\" <= '00011'";
resultadoItens = cxEMS2ESP.ExecutaSQL(sql);
while (resultadoItens.next()) {
System.out.println(resultadoItens.getString("it-codigo"));
Itens itensGerados = new Itens(resultadoItens.getString("it-codigo"));
listaItens.add(itensGerados);
}
for (Iterator<Itens> it = listaItens.iterator(); it.hasNext();) {
Itens itens = it.next();
System.out.println(itens.getItCodigo());
}
} catch (SQLException ex) {
Logger.getLogger(pegarItens.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
private static ResultSet resultadoItens;
private static List<Itens> listaItens = new ArrayList<Itens>();
private String sql;
}
Obrigado desde já.