编程语言
首页 > 编程语言> > java-差异只是List和List和List <?>

java-差异只是List和List和List <?>

作者:互联网

根据擦除概念,我认为

列表和列表< Object>一致,但我注意到

List<String> strList = new ArrayList<String>();  
        List<Object> objList = strList; //error
        List objList = strList; //valid construction
        List<?> objList = strList; //valid construction

解决方法:

>列表<?>是具有未知类型的列表.您不能在此处插入
因为您不知道将允许插入哪种类型.它
具有(或不具有)泛型类型,但是您无法知道它.如果
您可能要插入一些内容(首先键入列表)
违反某些规定,因此您不应该这样做.
> List< Object>是一个列表,您可以在其中插入任何对象,以及何时
您得到的物品(起初只知道)是一个对象(并且
您已经知道).
>列表仅允许向后兼容(我认为).之前
Java 5没有泛型. Java需要允许之间的类型转换
清单和清单< Anything>因此旧代码可能与现代代码兼容.

标签:generics,erasure,java
来源: https://codeday.me/bug/20191122/2056298.html