我刚刚开始使用库而不是从头开始创建所有内容,但这会导致一些我不理解的问题。
我有一个链接列表,我正在添加'信息' - 里面有变量'age'和'name'的对象,但我很困惑。
List<ClientInfo> list = new LinkedList<>();
ClientInfo information = new ClientInfo();
information.age = 44;
list.add(information);
information = new ClientInfo(); // without this line it doesn't work, but i don't get why it shouldn't
information.age = 66;
list.add(information);
int age = list.get(0).age;
System.out.println(age);
age = list.get(1).age;
System.out.println(age);
正如你在上面看到的,它完全正常工作,但是,当我删除注释行它不再起作用时,它只是向两个字段添加66并且我不明白为什么我肯定可以修改信息对象无需重新创建节点?
有人可以告诉我为什么吗?
答案 0 :(得分:3)
如果没有该行,您只有一个实例在年龄44和年龄66共享 - 实际上相同的对象被插入两次,并且两者都有66岁,因为它会覆盖44。
使用该行,您创建了第二个实例,尽管重用了相同的变量,现在它指向/引用另一个对象。