Java 在将对象添加到arraylist中覆盖

Java 在将对象添加到arraylist中覆盖,java,object,arraylist,add,overwrite,Java,Object,Arraylist,Add,Overwrite,这件事让我头痛了一阵子,我正试图找出问题所在,却找不到答案。基本上,它会覆盖列表中以前的每个对象 public class ProcessadorDeSinaisImpl implements ProcessadorDeSinais { private List<GeradorDeEvento> gerador = new ArrayList<GeradorDeEvento>(); private List<Evento> listaEvento = ne

这件事让我头痛了一阵子,我正试图找出问题所在,却找不到答案。基本上,它会覆盖列表中以前的每个对象

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;
}
公共类ProcessAdorDesinaSimpl实现ProcessadorDeSinais{
private List gerador=new ArrayList();
private List listaEvento=new ArrayList();
公共无效adicionarGerador(GeradorDeEvento GeradorDeEvento){
gerador.add(gerador Deevento);
}   
公共列表流程(列表sinais){//Lista de sinais gerada pelo GeradorDeSinais!!!!
结果事件;
for(int i=0;i
}

试着做:

 Evento resultado = new EventoImpl();
 resultado = gerador.get(i).gerarEvento(sinais.get(j));

在循环my之外声明变量可能会导致问题

此行`resultado=new EventoImpl()`是无用的,因为resultado在下一行被分配到另一个对象的引用。你到底有什么问题?@alainlompo我的问题是,即使我从“gerador.get(I).geravento(sinais.get(j))”接收到的Evento不是空的,它们也会在我将它们添加到列表中时相互覆盖。这发生在if语句之前