泛型的原理及使用方法

偽裝一輩子 3个月前 已收到2个回答 举报

唱情歌旳人 3星

共回答了30个问题采纳率:94.6% 评论

一、什么是泛型

  Java从1.5之后支持泛型,泛型的本质是类型参数,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。

  若不支持泛型,则表现为支持Object,不是特定的泛型。泛型是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。许多重要的类,比如集合框架,都已经成为泛型化的了。

二、泛型有什么优点

  泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率。

  1、类型安全

  泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就无法落实到代码中,仅仅能停留在设计方案或者注释中。

  2、消除强制类型转换

  泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了强制转换代码和出错机会。

  3、潜在的性能收益

  泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中。

三、泛型如何表示

  我们在泛型中是用的T,E,K,V有什么区别呢,实际上使用大写字母A,B,C,D......X,Y,Z定义的,就都是泛型,把T换成A也一样,这里T只是名字上的意义而已,如:

? 表示不确定的java类型,类型是未知的。

T (type) 表示具体的一个java类型,如果要定义超过两个,三个或三个以上的泛型参数可以使用T1, T2, ..., Tn

K V (key value) 分别代表java键值中的Key Value

E (element) 代表Element

extends、super 泛型的参数类型可以使用extends、super语句,例如<T extends superclass>。习惯上称为“有界类型”。

四、泛型的原理

  泛型是一种语法糖,泛型这种语法糖的基本原理是类型擦除,即编译器会在编译期间「擦除」泛型语法并相应的做出一些类型转换动作

21小时前

49

女软妹 1星

共回答了112个问题 评论

泛型是一种语法糖,泛型这种语法糖的基本原理是类型擦除,即编译器会在编译期间「擦除」泛型语法并相应的做出一些类型转换动作

泛型类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法,其中类和接口使用方式大致一致。

19小时前

37
可能相似的问题

热门问题推荐

Copyright © 2024 微短问答 All rights reserved. 粤ICP备2021119249号 站务邮箱 service@wdace.com