【发布时间】:2015-06-25 17:32:34
【问题描述】:
这件事让我头疼了一阵子,我试图找出问题所在,但找不到答案。基本上,它会覆盖列表中的每一个之前的对象。
public class ProcessadorDeSinaisImpl implements ProcessadorDeSinais {
private List<GeradorDeEvento> gerador = new ArrayList<GeradorDeEvento>();
private List<Evento> listaEvento = new ArrayList<Evento>();
public void adicionarGerador(GeradorDeEvento geradorDeEvento) {
gerador.add(geradorDeEvento);
}
public List<Evento> processarSinais(List<Sinal> sinais) { // Lista de sinais gerada pelo GeradorDeSinais !!!!
Evento resultado;
for(int i=0; i < gerador.size(); i++){
for(int j=0; j < sinais.size(); j++)
{
resultado = new EventoImpl();
resultado = gerador.get(i).gerarEvento(sinais.get(j));
if(resultado != null)
{
listaEvento.add(resultado);
}
}
}
return listaEvento;
}
}
【问题讨论】:
-
这一行`resultado = new EventoImpl();`没有用,因为resultado在下一行被分配了对不同对象的引用。你到底有什么问题?
-
@alainlompo 我遇到的问题是,即使我从“gerador.get(i).gerarEvento(sinais.get(j)) 收到不为空的 Evento,它们也是当我将它们添加到列表时相互覆盖。这发生在 if 语句之前
标签: java object arraylist add overwrite