HashMap类型不是通用的; 它不能使用参数<String,Integer>进行参数化

Sha*_*ane 6 java

当我尝试实现如下地图时,这是一个奇怪的错误.

Map<String, Integer> cache = new HashMap<String, Integer>();
Run Code Online (Sandbox Code Playgroud)

我正在使用JDK 1.7并且不确定为什么会出现此错误并通过添加强制转换更改上述行会删除错误.我在发布这个问题之前看了一下stackoverflow中的相关帖子似乎是个奇怪的问题.

Map<String, Integer> cache = (Map<String, Integer>) new HashMap();
Run Code Online (Sandbox Code Playgroud)

Alf*_*rio 24

检查您实际上是在导入中使用java.util.HashMapjava.util.Map.


小智 6

我也经历了同样的错误,但仅通过更改项目的某些属性即可解决:

  • 右键点击您的项目
  • 点击 Properties
  • 选择Java Build Path从右侧面板
  • 选择Order and Export标签
  • 点击你的 JRE System Library or JDK Library
  • 单击Up按钮并将其移至第一个位置
  • 请点击 Ok
  • 清理并构建您的项目。

如果您有依赖项,请对所有其他依赖项项目也重复此步骤。

它解决了我的问题,因为以前Java文件不是从JRE包中挑选其他库和包,因为它是按最后优先级排序的。