VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • 什么是Java泛型?

一、泛型的概念

如果要求在一个类中定义一个保存年龄的属性,这个属性定义为int还可以定义

字符串类型:

●private int age; .

●private String age;

此时可以使用什么类型能表示这两种类型呢?首先想到的是Object类,该类是所有类型的父类,那么就可以使用该类型表示这个年龄的属性,因为子类类型可以向上转型为Object。

Object是Java提供的一个最大父类,Java提供的所有其他引用类型的类都继承这个类,比如说String 类。

DEMO:使用Obejct作为age的类型

 

 

以上的代码可以实现一个类型(Object) 能表示其他类型,还能表示字符串。

DEMO:把年龄设置为字符串

 

 

使用Object可以实现需求,但是这个过程涉及到了向下转型,向下转型存在类型转换异常的风险(而且这个类型转换异常要运行时候才会出现)。如果保存的时候是字符串类型的数据,获取的时候转成int就出现了类型转换异常。

DEMO:观察风险

 

程序出现了类型转换异常,那么原因是Object类型的范围太大了,所以向下转型存在风险,此时泛型就登场,泛型就是在定义类的时候给出一个占位符标记,占位符的具体类型是在实例化对象的时候根据需求给出的,这样的类就是泛型类。

DEMO:定义一一个泛型类

 

以上的泛型类中的“T”就是一个占位符标记,在实例化对象之前不知道其类型,只有在实例化对象的时候指定出T的具体类型。

DEMO:使用泛型类创建对象

 

 

以上的使用了泛型避开了之前的向下转型,不存在类型转换异常的风险。

DEMO:使用int作为泛型的类型

 

以上的代码提示错误:表示不能使用int类型作为泛型的类型,在泛型中如果要使用基本数据类型必须使用其包装类代替。

DEMO:使用基本数据类型的包装类作为泛型

总结:

1、一个类型不确定的时候需要使用一个占位符标记占位,之后实例化对象的时候具体根据需要确定出泛型的类型。

2、泛型没有向下转型的风险。

3、Java泛型(generics) 是JDK5中引入的-一-个新特性,泛型提供了编译时类型安全监测机制,该机制允许程序员在编译时监测非法的类型。使用泛型机制编写的程序代码要比那些杂乱地使用Object变量,然后再进行强制类型转换的代码具有更好的安全性和可读性。泛型对于集合类尤其有用,例如,ArrayList 就是一个无处不在的集合类。

以下是我整理的Java学习资料免费提供

 

详细的java系统视频免费学习地址

 

有完整的Java初级,高级对应的学习路线和资料!专注于java开发。分享java基础、原理性知识、JavaWeb实战、spring全家桶、设计模式、分布式及面试资料、开源项目,助力开发者成长!

 

相关教程