用了这么多年的 Java 泛型,你对它到底有多了解?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 作为一个 Java 程序员,日常编程早就离不开泛型。泛型自从 JDK1.5 引进之后,真的非常提高生产力。一个简单的泛型 T,寥寥几行代码, 就可以让我们在使用过程中动态替换成任何想要的类型,再也不用实现繁琐的类型转换方法。 虽然我们每天都在用,但是还有很多同学可能并不了解其中的实现原理。今天这篇我们从以下几点聊聊 Java 泛型: Java 泛型实现方式 类型擦除带来的缺陷 Java 泛型发展史 Java 泛型实现方式 Java 采用类型擦除(Type erasure generics)的方式实现泛型。用大白话讲就是这个泛型只存在源码中,编译器将源码编译成字节码之时,就会把泛型『擦除』,所以字节码中并不存在泛型。 对于下面这段代码,编译之后,我们使用 javap -s class 查看字节码。 观察setParam 部分的字节码,从 descriptor 可以看到,泛型 T 已被擦除,最终替换成了 Object。 ps:并不是每一个泛型参数被擦除类型后都会变成 Object 类,如果泛...