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的类。