Java中的通配符?与泛型变量T

泛型变量 T
只能在类、接口、方法中声明后才能使用,例如:

public class Box<T>{
	public T get(){...}
}

无界通配符 ?
只能用于填充泛型变量T,表示通配任何类型。注意,是用来填充泛型变量T的,属于填充方式的一种。例如:

Box<?> box;
box = new Box<String>();
---------------------------
Box<String> boxString;

Java编程思想第四版 P393-397

?extends能取,不能存即上转型是安全的
下转型是不安全的
super能存,不能取

extends

void method(List<? extends T> holder, T arg){
	holder.add(arg) //error
	T t = holder.get();
}

super

void method(List<? super T> holder, T arg){
	holder.add(arg)
	T t = holder.get(); //error
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值