Java基础——泛型

1、泛型程序设计:编写的代码可以被很多不同类型的对象所重用,用继承实现的。
*优点:将运行时期的问题转移到编译时期,可以更好地让程序员发现并解决问题(泛型是应用在编译时期的一项安全机制),并且避免了向下转型的麻烦。
*泛型的表现:泛型技术在结合中的应用范围很大
*使用泛型的情况:只要看到类或者接口在描述时的右边定义<>,就需要用到泛型。其实是容器在不能明确操作元素的类型的情况下,对外提供了一个参数(类型参数)<>,使用容器时只要将具体的类型实参传递给该参数即可(泛型就是传递类型参数)。
*类型参数的优点:使得程序具有更好的可读性和安全性。
*Java库中,使用变量E表示集合的元素类型,K和V分别表示表的关键字与值的类型,T表示任意类型

2、泛型方法:类型变量放在修饰符后面,返回类型的前面。
class ArrayAlg
{
Public static T getMiddle(T…a){
……
}
}
*静态方法是无法访问类上定义的泛型的。若静态方法需要定义泛型,泛型只能定义在方法上。
*类型变量的限定:一个类型变量或通配符可以有多个限定:
T extends Comparable & Serializable
限定类型用“&”分隔,而逗号用来分隔类型变量
3、类型擦除:定义一个泛型类型都会自动提供一个相应的原始类型,原始类型的名字就是删去类型参数后的泛型类型名。擦除类型变量并替换为限定类型(无限定的变量用Object)。

4、使用java泛型的限制:
(1)不能用类型参数代替基本类型;
(2)运行时类型查询只适合用于原始类型;
(3)不能创建参数化类型的数组;
(4)不能实例化类型变量;
(5)不能构造泛型数组;
(6)不能在静态域或方法中引用类型变量;
(7)不能抛出或捕获泛型类的实例;

5、通配符类型:在不明确具体类型的情况下,可以使用通配符来表示。
*泛型限定的两种表现形式:
(1)? extends E :接收E类型或者E类型的子类(泛型上限)
(2)? super E :接收E类型或者E类型的父类(泛型下限)
*使用上限的情况:一般集合存储元素时,如果集合定义了E类型,通常情况下存储E类型对象,对于E类型的子类对象,E类型也可以接受,所以这个时候可以将泛型从E类型改为? extends E。
*使用下线的情况:当从容器中取出元素操作时,可以用E类型接受,也可以用E类型的父类接受。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值