public static void main(String[] args) {
List<Test> list = new ArrayList<>();
Test t = new Test();
for(int i=0;i<10;i++){
t.setNum(i);
list.add(t);
}
System.out.println(list.toString());
}
因为list添加的是对象的引用,Test只被new了一次然后不断被赋值
输出
[TestBean [num=9], TestBean [num=9], TestBean [num=9], TestBean [num=9], TestBean [num=9], TestBean [num=9], TestBean [num=9], TestBean [num=9], TestBean [num=9], TestBean [num=9]]
public static void main(String[] args) {
List<Test> list = new ArrayList<>();
for(int i=0;i<10;i++){
Test t = new Test();
t.setNum(i);
list.add(t);
}
System.out.println(list.toString());
}
输出
[TestBean [num=0], TestBean [num=1], TestBean [num=2], TestBean [num=3], TestBean [num=4], TestBean [num=5], TestBean [num=6], TestBean [num=7], TestBean [num=8], TestBean [num=9]]
public class Test {
private Integer num;
public Integer getNum() {
return num;
}
public void setNum(Integer num) {
this.num = num;
}
@Override
public String toString() {
return "Test [num=" + num + "]";
}
}