为什么这段代码不起作用?
println getValueFromMap(new HashMap().put("a","aaaaa"))
//Its calling Method
def String getValueFromMap(Map<String,String> mapObject){
return mapObject.get("a")
}
Run Code Online (Sandbox Code Playgroud)
而以下代码正在工作。
Map<String,String> fooMap=new HashMap()
fooMap.put("b","bbbbb")
println getValueFromMap(fooMap)
//Its calling Method
def String getValueFromMap(Map<String,String> mapObject){
return mapObject.get("b")
}
Run Code Online (Sandbox Code Playgroud)
请解释。
new HashMap().put("a","aaaaa")
不返回 a HashMap,而是返回null. 该put方法不返回HashMap.
Map<String,String> fooMap=new HashMap()
fooMap.put("b","bbbbb")
println getValueFromMap(fooMap)
Run Code Online (Sandbox Code Playgroud)
之所以有效,是因为您将实际值传递HashMap给方法,而不是put方法的结果,即null.