我不确定如何在getter中创建一个浅拷贝实际工作以及它将如何使我们受益。
它是否仍然作为普通的getter起作用,因为每当我调用getter方法时,我都可以检索该列表中的信息?
我担心这个,因为将来如果我打电话给this.strings和this.getStrings()他们会产生不同的输出,这将是麻烦。
我想这里有一个隐含的问题,
我一直在考虑这个问题一段时间了:
如下例所示,有些人只会调用strings来获取该列表中的信息(因为在这种情况下它是私有的,所以我认为它可以正常工作吗?),其他人去调用this.strings或this.getStrings。
我是java的初学者,所以所有这些似乎都能够达到相同的结果,这让我很困惑。
谁能解释一下?对不起,如果措辞不清楚。
代码如下:
import java.util.ArrayList;
import java.util.List;
public class Experiment {
private List strings;
public Experiment(String string) {
this.strings = new ArrayList<>();
}
public List getStrings() {
return strings;
}
}
一些程序员没有实现:
public List getStrings() {
return strings;
}
相反,他们做:
public List getStrings() {
return new ArrayList<>(strings);
}