java 8:推断类型不符合Netbean IDE上的上限

时间:2018-01-07 09:12:18

标签: eclipse netbeans java-8

我从书中复制了以下代码以准备Java证书考试。在Netbeans IDE(jdk 1.8.0_144)上编译时,我得到了编译器错误"推断类型不符合Netbean IDE"的上限。

public static void main(String[] args) {
        Stream<String> ohMy = Stream.of("lions", "tigers", "bears");
        Map<Integer, Optional<Character>> map = ohMy.collect(
                Collectors.groupingBy(
                        String::length,
                        Collectors.mapping(s -> s.charAt(0),
                        Collectors.minBy(Comparator.naturalOrder()))));

        System.out.println(map); 
}

它仍在Eclipse上编译,请解释这里有什么问题? 我在这里上传了错误详情:

error deatail

1 个答案:

答案 0 :(得分:3)

您可能需要在此处帮助编译器,因为它是类型推断问题:

您可以通过显式指定Comparator或任何Collectors的类型来解决问题。

  • Collectors.<Character>minBy()
  • Comparator.<Character>naturalOrder()
  • Collectors.mapping((String s) -> s.charAt(0)