【发布时间】:2015-03-17 14:38:31
【问题描述】:
今天我尝试reference 一个通用的构造函数。为什么不正确?
import java.util.Collection;
import java.util.function.Supplier;
class Foo<R extends Collection<Integer>> {
Supplier<R> supplier = R::new; // Compiler error!
}
错误文本:
java: unexpected type
required: class or array
found: type parameter R
是因为type erasure吗?还是我做错了?
【问题讨论】:
-
调用
new R();也不起作用... -
你知道这段代码运行时 R 是什么吗? (提示:编译器没有。)
标签: java-8 type-erasure