声明为List,Idea 提示 incompatible types。但是声明为ArrayList缺正确,为什么?

ListTest {
    ArrayList () {
        .= ArrayList<Course>()}
}


雨溢丰
浏览 5071回答 3
3回答

小草1434

List只是一个接口(interface),不能够具体实例化成对象,通常使用其实现类(ArrayList,LinkedList)进行实例化成数组对象 所以写法可以如下 List list = new ArrayList(); 如果按照严格编码规范写的话,考虑到它的泛型特性,所以概括性的写如下 List<?> list = new ArrayList<?>(); 如果确定了数组中元素的基本类型,其中问号可以替代为基本类型关键字。

小草1434

因为List 是接口,不是具体的实现类。如果List 后面有跟上 其具体实现类(LinkedList,ArrayList等)的赋值也是可以的。如果是直接用其实现类(如ArrayList)进行声明变量是可以的。

肆意先生

List是接口,必须通过其子类实例化。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java