我不明白为什么在将Collections.emptyMap()
分配给地图引用时将Collections.emptyMap()
作为参数传递时出现错误,但没有提供错误,下面是我尝试的代码示例,我使用的是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) {
}
}
最佳答案
因为使用的是JDK 1.7,所以无法从JDK 8及更高版本中改进的类型推断中受益。最好更新正在使用的Java版本。如果这不是一个选项,那么在将Map
作为参数传递时,必须将Collections#emptyMap
的参数显式传递给函数:
calculateValue(Collections.<String, String>emptyMap());