什么是反射
反射机制是:在运行状态中,对于任意一个类,对象,都能够知道所有属性和方法,并且能修改它。
反射机制允许程序在运行时取得任何一个已知名称的class的内部信息
类名 | 用途 |
Class 类 | 代表类的实体,在运行的Java应用程序中表示类和接口 |
Field 类 | 代表类的成员变量/类的属性 |
Method 类 | 代表类的方法 |
Constructor 类 | 代表类的构造方法 |
反射的实现方式第一步:获取Class对象
有4种方法:
1)Class.forName(“类的路径”);
2)类名.class
3)对象名.getClass()
4)基本类型的包装类,可以调用包装类的Type属性来获得该包装类的Class对象
反射机制的优缺点:
优点:
1、能够运行时动态获取类的实例,提高灵活性;
2、与动态编译结合
缺点:
1、使用反射性能较低,需要解析字节码,将内存中的对象进行解析。
2、相对不安全,破坏了封装性(因为通过反射可以获得私有方法和属性)