java - 将 Collections.emptyMap 作为参数传递时出现错误

标签 java generics collections

我不明白为什么在将 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/

相关文章:

java - Spring 与 Hibernate 集成获取重复记录

linq - 无法将类型 IEnumerable<T> 隐式转换为 IQueryable<T>

java - 在它自己的方法中传递对象的实例作为参数?

java - Spring Boot 嵌入式 Tomcat 中的自定义 SAML 身份验证阀 - 不适用于执行器端点

generics - Swift - 使用泛型获取方法

java - 泛型类列表的奇怪错误

c# - 如何将现有实体附加到通用的 Entity Framework 上下文?

java - 如何在数组列表中查找对象?

java - Gradle android找不到符号上下文

java - 如何在 Java 中使用 lambda 表达式搜索集合?