关于java泛型中的? 、Object、? extends Object的区别

西夏一品堂 发布于 2015/06/17 22:28
阅读 5K+
收藏 1
public static void set(List<?> list)
{
		
}
public static void set(List<Object> list)
{
		
}
public static void set(List<? extends Object> list)
{
		
}


请问,这三种,有什么区别?



加载中
1
xesam
xesam

List<?> list 可以赋值任何类型,但是不能添加具体的类型

List<Object> list 只能赋值List<Object>,但是可以添加任何类型

List<?extends Object> list 与 List<?> list没区别

正解
0
如比如比
如比如比
因为List<Object>是List<?>的子类,所以List<? extends Object> list 和 List<?> list是相同的。
0
yeliuping
yeliuping
1表示使用泛型,不特指对象类,对非泛型而言; 2指定泛型对象类,如果把Object改为其它对象类明显能看出和1的区别; 3泛型对象类只能是继承指定对象的子类。
0
西夏一品堂
西夏一品堂

引用来自“xesam”的评论

List<?> list 可以赋值任何类型,但是不能添加具体的类型

List<Object> list 只能赋值List<Object>,但是可以添加任何类型

List<?extends Object> list 与 List<?> list没区别

了解
返回顶部
顶部