Java 泛型全解析
泛型简介
什么是泛型?
- 参化类型,数是JDK1.5的新特性。(定义泛型时使用参数可以简单理解为形参),例如List
,Map - 编译时的一种类型,此类型仅仅在编译阶段有效,运行时无效.例如List
在运行时String会被擦除,最终系统会认为都是Object.
为什么要使用泛型?
泛型是进行类型设计或方法定义时的一种约束规范,基于此规范可以:
- 提高编程时灵活性(有点抽象,后续结合实例理解)。
- 提高程序运行时的性能。(在编译阶段解决一些运行时需要关注的问题,例如强转)
说明:泛型应用相对比较简单,难点在泛型类或方法的设计上,通过这样的设计如何对现有类进行减法设计,提高类或方法的通用性.
泛型应用类型
泛型定义时常用方式有三种(可参考List 泛型类定义及应用 类泛型定义:(用于约束类中方法参数和方法返回值类型) 泛型接口定义及应用 定义接口时指定泛型,用于约束接口方法参数类型以及方法返回值类 泛型接口应用实践 泛型定义及应用 泛型方法中的泛型仅仅应用于当前方法,主要应用于一些静态方法,当然非静态方法也可以应用。 泛型应用通配符应用 无界限定通配符 泛型无界通配符使用”?”进行表示,可以代表一种任意参数类型(实参类型)。一般应用于变量的定义。例如:Class>c1; 上届界限定通配符 泛型上届限定符通过“”方式进行实现,主要用于方法参数或方法的返回值类型,例如: 下届限定通配符 泛型下届限定符通过“”方式进行实现,主要用于方法参数或方法的返回值类型,例如: 泛型类型擦除实践分析 泛型是编译时的一种类型,在运行时无效,运行时候都会变成Object类型,例如: 总结(Summary) 本小节对泛型的定义,应用场景,应用类型以及泛型的类型擦出进行了分析和实践,希望在后续项目实践中对泛型有一个更好的认识。 以上就是Java泛型全解析的详细内容,更多关于Java泛型的资料请关注毛票票其它相关文章! 声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
classArray
interfaceTask{//思考map中的泛型Map
classConvertTaskimplementsTask
classObjectFactory{
/**泛型方法*/
publicstatic
Class>c=Class.forName("java.util.Date");
staticvoiddoPrint(Listlist){
System.out.println(list);
}
staticvoiddoPrint(Setset){
System.out.println(list);
}
ArrayList