假设我有以下课程:
class A{
private Map<String, String> map;
private Map<String, String> getMap(){
return map;
}
private doActionOnMap(){
Map<String, String> map = getMap(); //Is the map returned by getMap()
//refers to the private field map?
}
}
也就是说,当某个值通过方法返回时,它将是另一个(原始的)副本,或者它将引用位于方法内的对象?
答案 0 :(得分:2)
它是一个参考...当你想要一个克隆时,你必须自己实现它
答案 1 :(得分:1)
答案 2 :(得分:0)
private Map<String, String> map;
map
是一个类成员,它与该类的每个实例相关联。如果你写:
Map<String, String> myMap = a.getMap();
您将获得参考,而不是它的副本。如果您更改了它,那么在此类中使用它的所有方法都会更改它。