要列出的对象 - >为什么我要创建一个新对象?

tim*_*nYE 3 java

我想了解为什么会发生以下情况:

数据类型库

public class Bank {
    String Blz; String Name;

    public String getBlz() {
        return Blz;
    }
    public void setBlz(String Blz) {
        this.Blz = Blz;
    }
    public String getName() {
        return Name;
    }
    public void setName(String Name) {
        this.Name = Name;
    }    
}
Run Code Online (Sandbox Code Playgroud)

这按预期工作:

public List<Bank> getSearchResult() {        
        List<Bank> banks = new ArrayList<>();
        Bank bank = new Bank();
        bank.setBlz("1");
        bank.setName("Berlin");
        banks.add(bank);
        bank = new Bank();
        bank.setBlz("8");
        bank.setName("München");
        banks.add(bank);
        return banks;
    }
Run Code Online (Sandbox Code Playgroud)

该列表有第一个Element 1/Berlin和第二个8 /München.但这个我不明白:

public List<Bank> getSearchResult() {            
        List<Bank> banks = new ArrayList<>();
        Bank bank = new Bank();
        bank.setBlz("1");
        bank.setName("Berlin");
        banks.add(bank);
        //bank = new Bank();
        bank.setBlz("8");
        bank.setName("München");
        banks.add(bank);
        return banks;
    }
Run Code Online (Sandbox Code Playgroud)

如果我不创建如上所示的新对象库,则列表包含两次8 /München.为什么会这样?我不明白这一点,因为当我添加第一个元素时,它包含1 /柏林.然后我覆盖值并添加第二个.

谢谢

use*_*674 6

如果你没有创建一个对象,那么..

..您修改现有(相同)对象.

Java 不会自动复制/克隆/复制对象(即在分配时或传递给方法时).