泛型对于初学者来说,都不太懂,特别是通配符,下面总结了一下通配符,希望可以帮助的到你哦!
1.<?>:
1).这种变量可以指向什么样的对象:具有任何泛型的集合。
2).这种集合可以存储什么类型的数据:什么都不能存;
3).这种集合获取时,可以用什么类型接收:只能用Object。因为使用了?,所以不确定里面存了什么类型;
作用:这种声明的引用,只能获取,不能存入。它一般用于"方法的返回值"的声明;
2.<? extends E>:
1).这种变量可以指向什么样的对象:此声明的集合意味着此变量只能指向具有E或E的子类泛型的集合对象;
2).这种集合可以存储什么类型的数据:因为某个具体的子类不确定,所以什么类型的对象都不能存;
3).这种集合获取时,可以用什么类型接收:使用E及E的父类类型接收都可以;
作用:这种声明的引用,只能获取,不能存入。它一般也是用于"方法的返回值"声明;
3.<? super E>:
1).这种变量可以指向什么样的对象:任何具有E及E的父类类型泛型的集合对象;
2).这种集合可以存储什么类型的数据:任何的E及E的子类类型都可以;
3).这种集合获取时,可以用什么类型接收:取出时只能用Object接收。
作用:这种声明的引用,可以存入元素,但不能用除Object外的其它类型接收。这种声明的格式一般用在"方法的形参"
|
|