给定类型
我知道
但是
所以,如果一个类型是从另一个类型派生而来,但并非直接派生,它仍然是其祖先类型的子类型吗(或者我的图表是错误的)?这个练习也让我有些困惑
List<?>
、List<Object>
、List<? super Number>
、List<Number>
、List<Integer>
和List<? extends Number>
,我试图理解它们的层次结构。我知道
List<Integer>
不是List<Number>
的子类型,尽管Integer
确实是Number
的子类型,所以我认为它实际上是List<? extends Number>
的子类型。但是
List<? extends Number>
直观地看起来似乎是List<Number>
的子类型,这使得List<Integer>
最终仍然是List<Number>
的子类,正如我的想法所示:所以,如果一个类型是从另一个类型派生而来,但并非直接派生,它仍然是其祖先类型的子类型吗(或者我的图表是错误的)?这个练习也让我有些困惑
?
和Object
之间的区别...实际上,看起来我可能混淆了List<Object>
和List<? super Number>
。我想最大的问题之一就是,“所有东西都是一个Object
吗...或者所有东西都是一个?
?还是两者都是...或者都不是?
List<U> -> List<V>
表示V 是 U 的子类型
,否则您的大部分图表都是不正确的。例如,List<Integer>
不是List<Number>
的子类型 - 请参见:https://dev59.com/JHE85IYBdhLWcg3wgDvd - assylias