我创建了一个新的HashMap对象说。现在我将此对象传递给一个方法,在该方法中,我将变量的引用更改为其他一些hashmap对象。一旦方法完成,就不会反映对此新对象的引用
示例:
Map<String, Boolean> map = new HashMap<String, Boolean>();
changerefofMap(HashMap<String, Boolean>() map)
{
map=methodwhichreturnSomeMap();
System.out.println(map.size()); //returns 2
}
System.out.println(map.size()); //returns 0
我不明白为什么引用没有改变。
答案 0 :(得分:0)
因为在java中你总是pass by value
答案 1 :(得分:0)
当你传递地图对象时,它实际上并没有使用原始地图。如果你想改变方法之外的方法,你应该直接引用它。