Java核心技术_笔记8-4

1 .使用遗留代码,利用注解让警告消失
@SuppressWarnings(“unchecked”)

2 不能用类型参数代替基本类型double要用Double

3 .查询只返回原始类型
if(a instanceof Pair< String>)是测试a是否是(任意类型)的一个Pair,与String无关
Pair < String> s=···;
s.getClass()同理,返回Pair.class

4 .不能创建参数化数组
Pair< String>[] table =new Pair< String>[10];错误
可以声明Pair< String>[],但不能用new Pair< String>[10]初始化
收集参数化类型对象,用ArrayList<Pair< String>>

5 .向参数个数可变的方法传递一个泛型类型的实例。
用@SafeVarargs标注来消除创建泛型数组的有关限制

6 .不能实例化类型变量
new T() ,new T[],T.class都是非法

7 .不能构造泛型数组

8 .不能再静态域或方法中引用类型变量

9 .不能抛出或捕获泛型类的实例

10 .消除对受查异常的检查
Block.< RuntimeException > throwAs ( t ) ;

11 .擦除后的冲突
要想支持擦除的转换 , 就需要强行限制一个类或类
型变量不能同时成为两个接口类型的子类, 而这两个接口是同一接口的不同参数化 。
class Employee implements Coinparable < Emp loyee > { . . . }
class Manager extends Employee implements Comparable < Manager >
{ . . . } / / Error

12 .无论 S 与 T 有什么联系, Pair< S> 与Pair < T>有什么联系

13 .可将参数化类型转换为一个原始类型
Pair< Employee>是原始类型Pair的子类型

14 .泛型类可以扩展或实现其他泛型类
ArrayList< T>类实现List< T>接口
ArrayList< T>可转换为List< T>

15 .通配符类型
Pair< ? extends Employee>
表示任何泛型Pair类型,类型参数时Employee的子类
但不能调用方法
void setFirst(Pair< ? extends Employee>)

16 .超类型限定:限制为Manager的所有超类型
? super Manager

17 . 带有超类型限定的通配符可以向泛型对象写入 带有子类型限定的通配符可以从泛型对象读取
void setFirst ( ? super Manager )

18 .超类可以辅助
public static < T extends Conparable < ? super T >> T min(T [ ] a)

19 .无限定通匹配符Pair< ?>
? getFirst ( )
void set First (?)

20 .反射允许你在运行时分析任意的对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值