java基础之对泛型类的个人总结

泛型是指参数化类型的能力,使用泛型的主要优点是能够在编译时而不是运行时检查到错误
泛型类型必须是引用类型,不能用像int,double,或者char这样的基本类型来替换泛型类型

例子:demo1




当然也可以不在代码中使用泛型,只要将元素类型设置为object,它就可以适应任何对象类型。但是,使用泛型能够提高软件的可靠性和可读性,
因为某些错误能在编译时而不是运行时被发现

关于泛型在构造方法方面的易错点
public Mystack<T>() 这是错误的,应该定义为public Mystack()

除了可以定义泛型接口,还可以定义泛型类,泛型方法。

例子:demo2





为了调用泛型方法,需要将实际类型放在尖括号内作为方法名的前缀
例如:
GenericMethodDemo.<Integer>print(integers);
GenericMethodDemo.<String>print(strs);

!一般将一个类定义为泛型类,那么其方法也没必要特别定义为泛型方法


原始类型和向后兼容
不使用类型参数的泛型类称为原始类型

通配泛型
通配泛型有3中形式 ?,? extends T或者? super T
第一种类型?称为非受限通配,他和? extends object 是一样的
第二种类型 ? extends T称为受限通配,第三种称为下限通配




消除泛型和对泛型的限制
泛型是使用一种称为类型消除的方法来实现的。编译器使用泛型类型信息来编译代码,但是随后会消除他。泛型存在于编译时,一旦编译器确定泛型类型安全后,就会将它
转换为原始类型

并不是所有情况下都可以使用泛型,比如
1.不能使用new E()
2.不能使用new E[]
3.在静态环境下不允许类的参数是泛型类型
4.异常类不能是泛型的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值