开发者社区> 问答> 正文

ArrayList的实现与List接口如何理解

有一个方法这样写是正确的:

public static List<List<Integer>> function(){
        List<List<Integer>> list = new ArrayList<List<Integer>>();
        return list;
    }

但是以下会报错:

public static List<List<Integer>> function(){
        List<List<Integer>> list = new ArrayList<ArrayList<Integer>>(); //报错
        return list;
    }

以下也报错:

public static List<List<Integer>> function(){
        ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>(); 
        return list;//报错
    }

List接口和ArrayList的实现如何理解?

展开
收起
蛮大人123 2016-02-29 17:41:30 2508 0
2 条回答
写回答
取消 提交回答
  • ArrayList已经继承实现了LIst接口的类
    2019-07-17 18:50:42
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    这个和 Arraylist实现, List接口没有关系.

    Effective Java 2nd, item25:

    Generics, by contrast, are invariant: for any two distinct types Type1
    and Type2, List is neither a subtype nor a supertype of

    List [JLS, 4.10; Naftalin07, 2.5].

    为了防止下面的情况:
    `// Won't compile!
    List

    2019-07-17 18:50:42
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载