Java 为什么不选择这个签名<T> Stream<T> Stream.generate(Supplier<? extends T> supplier)
在这个<T> Stream<T> Stream.generate(Supplier<T> supplier)
?
我的意思是下面的例子(不编译)作为 String
的供应商是正确的s 在 CharSequence
的流中也有效不是吗?
Supplier<String> constantHello = () -> "Hello";
long count = Stream.<CharSequence>generate(constantHello).count();
最佳答案
这是一个错误。参见 https://bugs.openjdk.java.net/browse/JDK-8132097
它已在 java 9 中得到纠正。如您所见here , 方法声明现在是
static <T> Stream<T> generate(Supplier<? extends T> s)
关于java - 理解 Stream.generate 静态方法签名的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45773318/