Rumah  >  Artikel  >  Java  >  怎么理解java泛型

怎么理解java泛型

藏色散人
藏色散人asal
2019-05-31 11:56:192893semak imbas

怎么理解java泛型

泛型是Java SE 1.5 的新特性,《Java 核心技术》中对泛型的定义是: 

“泛型” 意味着编写的代码可以被不同类型的对象所重用。

可见泛型的提出是为了编写重用性更好的代码。

泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 

比如常见的集合类 LinkedList:

public class LinkedList<E> extends AbstractSequentialList<E> implements
    List<E>, Deque<E>, Queue<E>, Cloneable, Serializable {
//...
transient Link<E> voidLink;
//...

可以看到,LinkedList1a4db2c2c2313771e5742b6debf617a1 类名及其实现的接口名后有个特殊的部分 “”,而且它的成员的类型 Link1a4db2c2c2313771e5742b6debf617a1 也包含一个 “”,这个符号的就是 类型参数,它使得在运行中,创建一个 LinkedList 时可以传入不同的类型,比如 new LinkedList,这样它的成员存放的类型也是 String。

实际上引入泛型的主要目标有以下几点:

● 类型安全 

泛型的主要目标是提高 Java 程序的类型安全

编译时期就可以检查出因 Java 类型不正确导致的 ClassCastException 异常

符合越早出错代价越小原则

● 消除强制类型转换 

泛型的一个附带好处是,使用时直接得到目标类型,消除许多强制类型转换

所得即所需,这使得代码更加可读,并且减少了出错机会

● 潜在的性能收益 

由于泛型的实现方式,支持泛型(几乎)不需要 JVM 或类文件更改

所有工作都在编译器中完成

编译器生成的代码跟不使用泛型(和强制类型转换)时所写的代码几乎一致,只是更能确保类型安全而已

Atas ialah kandungan terperinci 怎么理解java泛型. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:jsp代码的特点是什么Artikel seterusnya:javaweb业务层应该怎么写