java如何处理对泛型类型的引用

时间:2015-10-14 06:17:52

标签: java generics reference wildcard

java如何使用引用存储和处理通用信息。

List<A>List<?>的子类型。请解释以上声明。继承如何与泛型对象的引用一起使用。

2 个答案:

答案 0 :(得分:0)

AB的子类型”意味着在需要B类型的任何地方,您也可以使用A类型。在您的语句中List<?>类型是“任何类型的对象列表,我们不关心它”,List<A>类型是“A类型的对象列表”。因此,显而易见的是,在我们需要“任何类型的对象列表”的任何地方,我们也可以使用“A类型的对象列表”。

答案 1 :(得分:0)

来自Java Docs

  

使用通配符(?)指定无界通配符类型,例如List。这称为未知类型的列表。有两种情况,无界通配符是一种有用的方法:

     
      
  1. 如果您正在编写可以使用Object类中提供的功能实现的方法。
  2.   
  3. 当代码使用泛型类中不依赖于类型参数的方法时。
  4.   

无界(?)转移到有界类型()正在从通用转移到特定实体

让我们来看看我自己的例子。

  1. 地球,一颗行星生物

  2. 动物树木生物

  3. 的一部分
  4. 人类是有两条腿和两只手的动物

  5. 男士&amp;女性是两种类型的人。

  6. 如果有的话?在列表中,您可以将列表应用于生物。但是,如果您希望您的列表仅包含人类或男性女性,您将根据需要决定有界类型。

    当您从通用转移到特定时:列表&lt; ? &GT; ,列表&lt;生物&gt;,列表&lt;人类&gt;,列表&lt;男士&gt;,您正在向您的实体应用更具体的内容。

    树是一个像人类或男人一样的生物,但它不能像男人那样有2条腿和2只手,它无法思考。

    您必须决定在哪个特定级别将实体绑定到特定类型。