使用JEP 101: Generalized Target-Type Inference,
final List<Boolean> bools = Arrays.asList(true,false, true);
final List<Character> string = bools.stream()
.<Character>map(x -> x ? 'X' : 'O')
.collect(Collectors.<Character>toList());
应该可以减少到
final List<Boolean> bools = Arrays.asList(true, false, true);
final List<Character> string = bools.stream()
.map(x -> x ? 'X' : 'O')
.collect(Collectors.toList());
在Java 8中,但后者不编译:
Type mismatch: cannot convert from List<Object> to List<Character>
我弄错了吗? 还是我领先于我的工具?
我正在使用JDK 8 build b120和eclipse-SDK-4.3.1-win32-x86_64-efx-0.9.0-SNAPSHOT.zip。
答案 0 :(得分:2)
它在IntelliJ Idea 13下工作正常,它似乎领先于Java支持Java8。 所以我想你只需要等到Eclipse才能编译它。
答案 1 :(得分:2)
现在修复了这个问题,最新的JDT快照实现了所需的提案。
答案 2 :(得分:0)
自Java 8发布以来,每个Eclipse版本都接受该示例。
(释放大于或等于P20140317-1600)。