泛型

每个泛型都定义一个原生态类型,即不带任何实际类型参数的泛型名词。例如,与List<E>相对应的原生态类型是List.原生态类型就像是从类型声明中删除了所有泛型信息一样。实际上,原生态类型List与Java平台没有泛型之前的借口类型List完全一样。


Set<Object> 是一个参数化类型,表示可以包含任何对象类型的一个集合;Set<?>则是一个通配符类型,表示只能包含某种未知对象类型的一个集合,Set则是一个原生态类型,他脱离了泛型系统,前两种是安全的,最后一种是不安全的。


泛型信息可以在运行时被擦除,因此在参数化类型而非无限制通配符类型上使用instanceof操作符是非法的,<>和?是多余的, 例子: if(o instanceof set)  而不是  if(o instanceof set<?>) ,不能把List<String> 传给一个参数类型为List<Object>的方法(即传参的时候)。  ?只能用于方法中的参数(传参),不能使用new创建。


数组中不能使用泛型。因为数组是具体化的(reified),只有在运行时在知道并检查他们的元素约束。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值