gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:34:08 25 4
gpt4 key购买 nike

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

数据类型库

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;
}
}

这按预期工作:

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;
}

列表中第一个元素 1/柏林和第二个元素 8/慕尼黑。但这我不明白:

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;
}

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

谢谢

最佳答案

如果您不创建对象,那么..

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

Java 不会自动复制/克隆/复制对象(即在赋值时或传递给方法时)。

关于java - 要列出的对象 -> 为什么我必须创建一个新对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17403355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com