Java 什么';这些泛型声明之间的区别是什么?
您如何用简单的英语描述这些列表内容之间的差异 我正在寻找一个可以作为参考的简单的比较Java 什么';这些泛型声明之间的区别是什么?,java,generics,nested-generics,Java,Generics,Nested Generics,您如何用简单的英语描述这些列表内容之间的差异 我正在寻找一个可以作为参考的简单的比较 /* 1 */ List< List< Dog>> /* 2 */ List< List<? extends Dog>> /* 3 */ List<? extends List< Dog>> /* 4 */ List<? extends List<? ext
/* 1 */ List< List< Dog>>
/* 2 */ List< List<? extends Dog>>
/* 3 */ List<? extends List< Dog>>
/* 4 */ List<? extends List<? extends Dog>>
相关问题与资源
列表
,其元素是狗的列表列表
,其元素是扩展Dog
列表
,其元素是狗列表的单个子类型列表
,其元素是A的单个子类型(扩展Dog的类型的列表
)列表
,其元素是A的单个超类型(扩展Dog的类型的列表)列表
,其元素是A的单个子类型(类型为超级狗的列表
)带有编号和子类型的示例,因为为什么不。将
Dog
替换为Number
List
可能看起来像一个由Number
元素组成的二维数组。很简单List第一个是具体的:它是一个List的List的List的s的Dog的,没有别的
第二个是最里面声明的抽象:它是一个列表
,由列表
继承自狗
——比如说狮子狗
。它可能是一个列表
第三个是内部列表声明的抽象:它是某种容器的list
,继承自list
——可能是ArrayList
——的Dog
。然后您可能会有列表
第四个是两个方面的抽象:它是一个从列表
衍生出来的某种容器的列表
,里面装满了一些从狗
继承来的动物——也许列表
可以替换每一个“看一看,也考虑到最后2不会让你更新列表,第二个不会让你更新子列表作为极好的答案!请看一下后续报道question@MBlanc就这么做了。仍然在计算5,但我想我还有其他的。谢谢你的脑筋急转弯@你知道,我在日食中得到了一些非常奇怪的东西。当我使用
让Eclipse计算出final的界限时List@MBlanc好吧,我想我把一切都弄明白了。希望我的逻辑有道理。如果我有什么错误或需要进一步解释,请告诉我。
/* 5 */ List<? super List<? extends Dog>>
/* 6 */ List<? extends List<? super Dog>>