1)Class:表示正在运行的Java应用程序中的类和接口
注意: 所有获取对象的信息都需要Class类来实现。
2)Field:提供有关类和接口的属性信息,以及对它的动态访问权限。
3)Constructor:提供关于类的单个构造方法的信息以及它的访问权限
4)Method:提供类或接口中某个方法的信息
优点:
1)能够运行时动态获取类的实例,提高灵活性;
2)与动态编译结合
缺点:
1)使用反射性能较低,需要解析字节码,将内存中的对象进行解析。
解决方案:
1.通过setAccessible(true)关闭JDK的安全检查来提升反射速度;
2.多次创建一个类的实例时,有缓存会快很多
3.ReflflectASM工具类,通过字节码生成的方式加快反射速度
4.相对不安全,破坏了封装性(因为通过反射可以获得私有方法和属性)
反射 API 用来生成 JVM 中的类、接口或则对象的信息。
-
Class 类:反射的核心类,可以获取类的属性,方法等信息。
-
Field 类:Java.lang.reflec 包中的类,表示类的成员变量,可以用来获取和设置类之中的属性值。</