我从书中复制了以下代码以准备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上编译,请解释这里有什么问题? 我在这里上传了错误详情:
答案 0 :(得分:3)
您可能需要在此处帮助编译器,因为它是类型推断问题:
您可以通过显式指定Comparator
或任何Collectors
的类型来解决问题。
Collectors.<Character>minBy()
Comparator.<Character>naturalOrder()
Collectors.mapping((String s) -> s.charAt(0)