子对象上的新ArrayList()不会更新父对象

时间:2017-04-14 15:00:30

标签: java

我认为一切都基于Java中的引用。我有一个包含子List的复杂对象。

ParentObj
|-- ...
|-- List<String> childList

当我直接修改childList时,我看到“ParentObj”相应地更新了它的childList引用。

childList.add("Hello");

但是当我做的时候

if (childList == null) {
  childList = new ArrayList<String>();
}

我看到“ParentObj”仍然有一个NULL子列表!关于这种情况有些不同,我希望ParentObj引用能够像设置/添加一样进行更新。

1 个答案:

答案 0 :(得分:-2)

Java按值传递引用。这意味着作为方法参数传递的引用的副本。因此,当您指定childList并且它不是原始引用时,则会对重复引用进行分配。

这就是你应该使用setter方法的原因。