热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

无法推断hashmap<>的类型参数

如何解决《无法推断hashmap<>的类型参数》经验,为你挑选了1个好方法。

我正进入(状态

   Cannot infer type arguments for java.util.HashMap<>

对于以下代码

class Test {

    public static void main(String[] args) {

        Map 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> 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而不是其他.仍然令人讨厌的错误正在惹恼我.

错误仍然存​​在



1> Eugene..:

这是ecj(eclipse编译器)中的一个错误,您可以解决它并添加更多类型信息:

item -> new ArrayList(item.stream().map(Entry::getKey)

看看我是如何添加的ArrayList.

它编译得很好javac-8 and 9.

顺便说一句,似乎有一种更简单的方法:

map.entrySet()
            .stream()
            .collect(Collectors.groupingBy(
                    Entry::getValue,
                    HashMap::new,
                    Collectors.mapping(Entry::getKey, Collectors.toList())));


推荐阅读
author-avatar
一个人的生活啦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有