我正在阅读《Effective Java》中关于泛型的章节。
请帮我理解Set
、Set<?>
和Set<Object>
之间的区别?
以下段落摘自该书:
Set<Object>
是一个参数化类型,表示可以包含任何类型对象的集合;Set<?>
是通配符类型,表示只能包含某种未知类型的对象的集合;而Set
则是原始类型,不使用泛型类型系统。
“某种未知类型”是什么意思?所有未知类型是否都是Object
类型?那么,Set<?>
和Set<Object>
之间的具体区别是什么?
set
)和接受Object
类型的集合(Set<Object>
)是一样的吗? - orrymr<T>
,则为“Object”,但如果泛型类型是<T extends Number>
,则下限为“Number”)。 - Joachim SauerSet <Object> mySet = new Set <Integer>;
这是因为Set <Integer>
不继承自Set <Object>
吗? - orrymr