我不明白为什么我在传递Collections.emptyMap()
作为参数时遇到错误,而将Collections.emptyMap()
分配给地图引用时却没有提供错误,下面是我试过的代码示例,I我正在使用JDK1.7
public class Solution {
public static void main(String[] args) {
Solution sol = new Solution();
Map<String, String> map = Collections.emptyMap(); //There is no compile time error on this.
sol.calculateValue(Collections.emptyMap()); //Getting compile time error on this
}
//what is the difference in passing Collections.emptyMap() as a parameter
public void calculateValue(Map<String, String> pMap) {
}
}
答案 0 :(得分:2)
因为您正在使用JDK 1.7,所以您无法从JDK 8及更高版本中的改进类型推断中受益。最好更新您正在编译的Java版本。如果这不是一个选项,那么在传递Map
作为参数时,必须将Collections#emptyMap
的参数显式传递给函数:
calculateValue(Collections.<String, String>emptyMap());