请问,有人可以帮我弄清楚为什么下面的代码用jdk8u45及以上代码编译但是jdk8u25失败了吗?我查看了JDK发行说明,但没有找到任何与此问题相关的内容或者可能错过了它.
代码
public class Main {
static class Param {
final int id;
Param(int id) {
this.id = id;
}
}
static class Subtask {
final Param param;
Subtask(Param param) {
this.param = param;
}
}
public static void main(String[] args) {
List<? extends Param> params = IntStream.range(1, 100).mapToObj(Param::new).collect(Collectors.toList());
NavigableMap<String, Subtask> map = params.stream()
.collect(Collectors.toMap(p -> UUID.randomUUID().toString(), Subtask::new, (a, b) -> a, TreeMap::new));
}
}
Run Code Online (Sandbox Code Playgroud)
jdk8u25例外:
Error:(33, 17) java: no suitable method found for collect(java.util.stream.Collector<org.ka.Main.Param,capture#1 of ?,java.util.TreeMap<java.lang.String,org.ka.Main.Subtask>>)
method java.util.stream.Stream.<R>collect(java.util.function.Supplier<R>,java.util.function.BiConsumer<R,? super …
Run Code Online (Sandbox Code Playgroud)