【发布时间】:2021-05-07 02:12:56
【问题描述】:
我对使用泛型使用构造函数引用有疑问。
为什么l = ArrayList<>::new; 有错误?
但是如果我使用 lambda 表达式,l = ()-> new ArrayList<>();,就可以了。为什么?
public static void main(String... args){
Supplier<ArrayList>
l = ()-> new ArrayList(); // good
l = ()-> new ArrayList<>(); // good
l = ()-> new ArrayList<Integer>(); // good
l = ArrayList<Integer>::new; // good
l = ArrayList::new; // good
l = ArrayList<>::new; // Error, why?
}
}
【问题讨论】:
-
// Error, why?- 因为根本就没有这样的语法?