List<? extends Pet>中问号的解释

  • ? 表示不确定的类型,一般用在通配。

  • jdk为了便于理解,用K表示键,V表示值,T表示type类型,E表示enum枚举,其实这四个都只是符号,都是表示泛型名称。换成其他字母都没关系,但是都要在之前声明。

参考:CSDN的一篇文章


更新:

通配符是Java泛型的一部分。通配符就是“?”,表示“任何事物”。

代码示例:

//: typeinfo/WildcardClassReferences.java

public class WildcardClassReferences {
  public static void main(String[] args) {
    Class<?> intClass = int.class;
    intClass = double.class;
  }
} ///:~

Class<?> 表示匹配任意类型的类。

//: typeinfo/BoundedClassReferences.java

public class BoundedClassReferences {
  public static void main(String[] args) {
    Class<? extends Number> bounded = int.class;
    bounded = double.class;
    bounded = Number.class;
    // Or anything else derived from Number.
  }
} ///:~

Class<? extends Number> 表示匹配任意继承自Number的类。

posted @ 2020-09-13 16:09  模糊计算士  阅读(477)  评论(0编辑  收藏  举报