我不明白为什么在将 Collections.emptyMap()
分配给 map 引用时将 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 版本。如果这不是一个选项,那么在将 Collections#emptyMap
作为参数传递时,您必须显式地将 Map
的参数传递给函数:
calculateValue(Collections.<String, String>emptyMap());
关于java - 将 Collections.emptyMap 作为参数传递时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49827514/