java - 带有通配符的泛型声明

标签 java generics

下面两个有什么区别吗?

代码:

List<? extends Object> ls = new ArrayList<String>();
List<?> ls1 = new ArrayList<String>();

最佳答案

List<? extends Object>

List<?>

两者是相同的。因为集合不允许基元,并且只允许 Classes ,在java中每个Class隐式扩展 Object .

如果你写List<? extends MyOwnParentClass>,你可以看到区别。 .

但与 Object ,您不会在这里获得任何额外的 yield /损失。

关于java - 带有通配符的泛型声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19464226/

相关文章:

java - Java中的类转换异常: cannot be cast

java - 简单的二维云

java - 是否可以在 Java 中使用扩展类的 getters/setters

java - 使用 junit 进行测试时遇到的奇怪问题

java - 我正在尝试比较一个字符串,但是当我让用户输入一个字符串时,它不允许他们

java - UML 类图中的通配符

java - java字节码总是向前兼容吗?

c++ - 如何在模板化项成员上显式调用析构函数

来自通用抽象类的 C# 线程静态字段

generics - OCaml 中的参数化