【发布时间】:2019-11-09 12:50:23
【问题描述】:
我不明白为什么这段代码编译时没有错误或警告:
import java.util.ArrayList;
import java.util.List;
class A {}
interface I {
void methodI();
}
public class B {
public void test() {
List<I> l = new ArrayList<>();
l.add(A::new);
}
}
毕竟,A::new 应该是一个 lambda(如我打印 l.get(0) 时给出的B$$Lambda$/1/... 所示),所以我不明白为什么它可以放入 I 接口列表中。
(我使用的是 Java 8,但也是tested with Java 10)
【问题讨论】: