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

hoa*_*ham 3 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); 
}
Run Code Online (Sandbox Code Playgroud)

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

错误细节

Ous*_* D. 6

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

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

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