编写高质量代码:改善Java的151个建议八(泛型和反射)93

该书籍PDF下载地址:http://download.csdn.net/download/muyeju/10001473

93.java的泛型是类型擦除的

  Java的泛型类型在编译期被擦除

94.不能初始化泛型参数和数组

95.强制声明泛型的实际类型

98.泛型建议采用的顺序List<T>,List<?>,List<Object>

  List<T>,T表示某个具体的类型,可以进行读写操作,

  List<?>:只能进行读操作,不能添加和修改

  List<Object>:可以进行读写,但是写操作要向上转型,读操作要向下转型

99.严格限定泛型类型,采用多重限定

  通过&设置多重边界

101.Class类

  java语音是先把java文件编译成后缀为class的字节码文件,然后通过ClassLoader机制把这些类文件加载到内存中,最后生成实例执行的,这是java的基本机制。

102.适时使用getDeclaredXxx和getXxx方法

  getDeclaredXxx:是获得所有public的访问级别的方法,包括从父类继承的方法,

  getXxx:是获得自身类的方法,包括公有和私有方法

103.反射访问属性和方法的时候将Accessible设置为true

  

  Accessible属性只是用来判断是否需要进行安全检查,如不需要,可以直接执行,这可以大幅度提升性能。

104.使用forName动态加载文件

  forName只是加载类,并不会执行任何代码。加载类的时候,类加载机制会去执行static代码块和static属性

105.通过反射操作数组使用Array类,不要采用通用的反射处理

原文地址:https://www.cnblogs.com/-scl/p/7656909.html