Java 从函数返回的值
假设我有以下课程:Java 从函数返回的值,java,methods,Java,Methods,假设我有以下课程: 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()
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?
}
}
也就是说,当某个值通过方法返回时,它将是原始对象的另一个副本,或者它将引用位于方法内部的对象?它是一个引用类型,因此您将得到的只是对原始对象的引用。它不是复制品 我建议您查找引用类型和值类型之间的差异
这是一个参考…当你想要一个克隆时,你必须自己实现它
private Map<String, String> map;
你会得到一份推荐信,而不是它的副本。如果您更改它,则该类中使用它的所有方法都将更改它 显然是相同的,但由于您从未分配它,因此只会得到null。
Map<String, String> myMap = a.getMap();