本帖最后由 翁游龙 于 2012-7-14 13:25 编辑
当把p添加到list之后,再次对p进行修改,取出来的是修改后的内容。
因为引用p指向了在内存空间的Person的成员,不管你对p怎么修改,
list获得的数据都是最新的。看看以下程序你就应该明白了:- import java.util.*;
- public class TestList
- {
- public static void main(String[] args)
- {
- List<Person> list = new ArrayList<Person>();
- Person p = new Person("张三");
- list.add(p);
- System.out.println(list); //打印张三
- p.setName("李四");
- System.out.println(list); //修改后打印李四
- }
- }
- class Person{
- private String name;
- Person(String name){
- this.name = name;
- }
- public void setName(String name){
- this.name = name;
- }
- public String getName(){
- return this.name;
- }
- public String toString(){
- return "name="+this.name;
- }
- }
复制代码 |