从Vector获取元素时出现意外输出

时间:2019-01-25 15:22:20

标签: java vector get set

我是Java中Vector用法的新手,这里的问题是Vector没有显示预期的输出(正确的输出:Pollo-Ercole此代码输出Ercole-Ercole)

.

Dipendente类

public class Dipendente 
{
    private String Id;

    void setId(String exId)
    {
    Id=exId;
    }
    String getId()
    {
    return Id;
    }
}

Azienda类

public class Azienda 
{      
    private Vector<Dipendente> Dip = new Vector<Dipendente>();
    public static void main(String[] args) throws IOException
    {
        Azienda az = new Azienda();
        az.dip.setId("Pollo");
        az.Dip.add(az.dip);
        az.dip.setId("Ercole");
        az.Dip.add(az.dip);

            //io.pf is System.out.println(strOut);

        az.io.pf(az.Dip.get(0).getId());
        az.io.pf(az.Dip.get(1).getId());
    }

}

正确的输出:Pollo-Ercole

此代码输出:Ercole-Ercole

1 个答案:

答案 0 :(得分:0)

您必须创建该对象的新实例。无论如何,您的代码是不完整的,因为我们不知道什么是az.dip。但是假设它是Dipendente的一个实例。您需要执行以下操作才能使其正常工作。

    Azienda az = new Azienda();
    Dipendente dip = new Dipendente();
    dip.setId("Pollo");
    az.Dip.add(dip);
    Dipendente dip = new Dipendente();
    dip.setId("Ercole");
    az.Dip.add(az.dip);

        //io.pf is System.out.println(strOut);

    az.io.pf(az.Dip.get(0).getId());
    az.io.pf(az.Dip.get(1).getId());

在您的答案中,当您第二次调用setId时,它正在更改您先前使用的对象的值,因此您会看到重复的条目。