`

java种泛型的使用

 
阅读更多

一、为什么需要泛型

泛型可以使程序程序在运行时避免出现java.lang.ClassCastException异常,使程序的书写更规范;

 

List list = new ArrayList();  
list.add("CSDN_SEU_Cavin");  
list.add(100);  
for (int i = 0; i < list.size(); i++) {  
  String name = (String) list.get(i); //取出Integer时,运行时出现异常  
System.out.println("name:" + name);  
} 

//引入泛型后的代码
List<String> list = new ArrayList<String>();  
list.add("CSDN_SEU_Cavin");  
list.add(100);  在编译时就会报错

 二、型只在编译阶段有效

 

     在编译过程中,正确检验泛型结果后,会将泛型的相关信息擦出,并且在对象进入和离开方法的边界处添加类型检查和类型转换的方法。也就是说,成功编译过后的class文件中是不包含任何泛型信息的。泛型信息不会进入到运行时阶段。

三、泛型的好处

(1)类型安全。 

通过知道使用泛型定义的变量的类型限制,编译器可以更有效地提高Java程序的类型安全。 

(2)消除强制类型转换。 

消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。所有的强制转换都是自动和隐式的。

(3)提高性能。

四、泛型使用的注意事项

(1)泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。

(2)泛型的类型参数可以有多个。

(3)不能对确切的泛型类型使用instanceof操作。

(4)不能创建一个确切的泛型类型的数组

分享到:
评论

相关推荐

    Java 实现泛型List

    Java 实现泛型List的源码,基本实现了List接口的全部所有方法。欢迎大家发表自己的观点和建议。

    2.java定义泛型类.zip

    2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip2.java定义泛型类.zip...

    java 泛型方法使用示例

    java 泛型方法使用示例 java 泛型方法使用示例 java 泛型方法使用示例

    Java泛型和集合

    Java Generics and Collections 英文版,详细描述java 泛型技术

    Java泛型编程指南.pdf

    Java泛型编程指南.pdf 此文章译自SUN的泛型编程指南

    java 继承泛型类示例

    java 继承泛型类示例 java 继承泛型类示例 java 继承泛型类示例

    java 使用泛型.txt

    java 使用泛型,优化重复多余代码.

    JAVA泛型加减乘除

    这是一个使用JAVA实现的泛型编程,分为两部分,第一部分创建泛型类,并实例化泛型对象,得出相加结果。 第二部分用户自行输入0--4,选择要进行的加减乘除运算或退出,再输入要进行运算的两个数,并返回运算结果及...

    Java泛型使用详细分析.pdf

    Java 泛型使用详细分析 Java 泛型是 Java 语言中的一种类型系统特性,允许开发者在编译期检查类型安全,以避免在运行时出现类型相关的错误。在本文中,我们将详细介绍 Java 泛型的使用方法和实现原理。 一、泛型的...

    java 泛型类的类型识别示例

    java 泛型类的类型识别示例 java 泛型类的类型识别示例 java 泛型类的类型识别示例

    Java1.5泛型指南中文版

    Java1.5泛型指南中文版

    java5泛型新特性 pdf

    java5泛型新特性 pdf,自己看不解释!

    java 一个关于泛型的简单例子

    java 一个关于泛型的简单例子 java 一个关于泛型的简单例子 java 一个关于泛型的简单例子

    Java 泛型擦除后的三种补救方法

    Java中的泛型,在运行时刻其具体类型是被擦除的,这样我们就不能用new T(),instanceof等关操作,特别是对泛型类型的类的实例化问题,在此根据《Thinking in Java》中所讲的对类型擦除所带来问题的三种解决方案,比较...

    Java源码泛型类的继承应用.rar

    Java源码泛型类的继承应用.rar

    java 泛型接口示例

    java 泛型接口示例 java 泛型接口示例 java 泛型接口示例

    Java反射泛型,实现数据库的动态增删改查等功能

    在Java中运用反射+泛型,实现数据库的动态增删改查等功能,可以是Mysql, 也可以是SQL Server,oracle 也行。本代码是支持SQL Server和oracle的。

    1.java泛型定义.zip

    1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1....

    关于java的泛型.doc

    关于java的泛型.doc 关于java的泛型.doc

    Java泛型应用实例

    网上很多讲泛型原理的文章, 很少有提到我们什么时候使用泛型有优势, 我就泛型类和方法搞了两个实例,算是探索下泛型使用的冰山一角吧,在我博客里面有配套的文章,可以配套看.

Global site tag (gtag.js) - Google Analytics