Rag*_*arg 1 java collections arraylist java-6
List<Object> list = new ArrayList<String>()
Run Code Online (Sandbox Code Playgroud)
当我使用上面的行编译器给我类型不匹配错误.但正如我所理解的,Object是String的超类,如果我创建了对象列表,那么它也应该接受String.那么为什么上述陈述是错误的.我正在寻找解释.
一句话,因为
泛型类型不是多态的
即,即使java.lang.String是java.lang.Object多态的子类型也不适用于泛型类型.它仅适用于集合类型.从而
List<Object> list = new ArrayList<String>(); //this isn't valid
List<Object> list = new ArrayList<Object>(); //valid
List<? extends Object> list = new ArrayList<String>();//valid
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16721 次 |
| 最近记录: |