我得到
Cannot infer type arguments for java.util.HashMap<>
字符串
对于以下代码,
class Test {
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(1, "x");
map.put(2, "y");
map.put(3, "x");
map.put(4, "z");
//the following line has error
Map<String, ArrayList<Integer>> reverseMap = new java.util.HashMap<>(map.entrySet().stream()
.collect(Collectors.groupingBy(Map.Entry::getValue)).values().stream()
.collect(Collectors.toMap(item -> item.get(0).getValue(),
item -> new ArrayList<>(item.stream().map(Map.Entry::getKey).collect(Collectors.toList()))));
System.out.println(reverseMap);
}
}
型
出了什么问题,有谁能解释一下吗?我已经检查了正确的导入,发现我导入的是java.util.hashmap,而不是其他。
的数据
4条答案
按热度按时间rryofs0p1#
这是
ecj
(eclipse编译器)中的一个bug,您可以绕过它并添加更多的类型信息:字符串
看看我是如何添加
ArrayList<Integer>
的。使用
javac-8 and 9
可以很好地进行编译。顺便说一句,似乎有一种更简单的方法来做事情:
型
11dmarpk2#
在我的例子中,添加
import java.util.Map;
后错误消失了:字符串
3npbholx3#
您的代码未完成,并且缺少
)
试着做:
字符串
这产生输出
型
4nkexdtk4#
在我的例子中,代码与Java版本相关。我在IntelliJ上本地运行并使用Jenkins部署时也会遇到同样的错误。
我不得不将其添加到我的pom.xml文件中来解决这个问题
字符串