Java泛型的理解与等价实现
泛型是Java SE 1.5的新特性。泛型的本质是参数化类型,即被操作的数据类型被指定为参数。此参数类型可用于创建类、接口和方法,分别称为泛型类、泛型接口和泛型方法。
在Java语言中引入泛型的好处是安全简单。
在Java SE 1.5之前,在没有泛型的情况下,参数的“任意性”是通过引用type对象实现的。“任意性”的缺点是需要显式的强制类型转换,这要求开发人员事先知道实际的参数类型。对于强制类型转换出错的情况,编译器可能不会提示错误,异常只在运行时出现,存在安全隐患。
泛型的优点是在编译时检查类型安全,所有强制转换都是自动和隐式的,这提高了代码重用率。
使用泛型有一些规则和限制:
1.泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。
2.同一个泛型可以对应多个版本(因为参数类型不确定),不同版本的泛型类实例是不兼容的。
3.泛型可以有多个类型参数。
4.例如,泛型参数类型可以使用extends语句。习惯做“有界型”。
5.泛型参数类型也可以是通配符类型。例如classclasstype = class . forname(Java . lang . string);
还有通用接口、方法等。内容很多,理解掌握并熟练运用需要一定的努力。下面是我曾经了解泛型(基于我的印象)时写的两个例子,来实现同样的功能。一个使用泛型,另一个不使用。通过对比,我可以很快学会泛型的应用,基本学会了泛型70%的内容。
位律师回复
0条评论