我学习了 Java 8 的新特性。
我正在玩不同的例子,我发现了一个奇怪的行为:
public static void main(String[] args) {
method(Test::new);
}
static class Test{
}
private static void method(Supplier<Test> testSupplier){
Test test = testSupplier.get();
}
这段代码编译成功,但我不知道它是如何工作的。
为什么Test::new
可以作为供应商接受?
供应商界面看起来很简单:
@FunctionalInterface
public interface Supplier<T> {
T get();
}