以下内容整理自互联网,仅用于个人学习
什么是反射机制
JAVA反射机制是在运行状态中, 对于任意一个类, 都能够知道这个类的所有属性和方法; 对于任意一个对象, 都能够调用它的任意一个方法和属性; 这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
反射机制所操作的对象
- Class:类对象
- Constructor:类的构造器对象
- Field:类的属性对象
- Method:类的方法对象
反射机制的作用
- 在运行时判断任意一个对象所属的类
- 在运行时构造任意一个类的新对象实例(.newInstance())
- 在运行时获取任意一个类所具有的成员变量和方法
- 在运行时调用任意一个对象的方法
开发中的用处:
- 观察或操作应用程序的运行时行为。
- 调试或测试程序,因为可以直接访问方法、构造函数和成员字段。
- 通过名字调用不知道的方法并使用该信息来创建对象和调用方法。
反射机制的优缺点
- 优点:就是可以实现动态创建对象和编译,体现出很大的灵活性,特别是在J2EE的开发中它的灵活性就表现的十分明显。
- 缺点:对性能有影响。使用反射基本上是一种解释操作,我们可以告诉JVM,我们希望做什么并且它满足我们的要求。这类操作总是慢于只直接执行相同的操作。并且它饶过了源码,会干扰原来的内部逻辑。
反射机制获取class的方法
- class.forName(类的路径)
- 类名.class
- 实例.getClass()