我想明白为什么会发生以下情况:要列出的对象 - >为什么我必须创建一个新对象?
数据类型银行
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 /慕尼黑。为什么会发生?我不明白这一点,因为当我添加第一个元素时,它包含1 /柏林。然后我覆盖这些值并添加第二个值。
感谢
因为'List'可以有重复,因为你没有创建新的对象,你修改现有的。如果你不想要,使用'Set'。 – Maroun
因为你添加了两次? –
局部变量'bank'的重用令人困惑。我会使用两个变量。 – johnchen902