泛型擦除后仍然保留的泛型信息
我们知道泛型擦除会擦除泛型类型,转而使用原始类型或类型上界。那么有关泛型的信息在编译完成后一点都不会保留吗?其实,还是有保留的,这些信息保留在字节码指令集之外的…
我们知道泛型擦除会擦除泛型类型,转而使用原始类型或类型上界。那么有关泛型的信息在编译完成后一点都不会保留吗?其实,还是有保留的,这些信息保留在字节码指令集之外的…
简单来说,泛型擦除就是编译器在编译的时候,把泛型代码转换为普通的Java字节码,即字节码中没有泛型。 如何证明编译器进行了泛型擦除呢? 准备泛型类 准备一个泛型…
面向对象的特征之一就是封装性,如果一个对象的成员变量被设置为私有的,那么从正常编程的角度出发,是无法进行修改的。但是有了反射机制,就可以破坏面向对象的封装性,去…
有三种方式可以获取Class对象,但是这三种方式有所区别。 首先准备一个Animal类,用于测试 第一种方法,通过Animal.class获取 执行结果:cla…
当需要序列化一个对象时,又不想保存该对象的某个属性,这时transient关键字就派上用场了。 以下将演示给Person类的password属性添加transi…