-
什么是java的反射机制
Java的反射机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制,反射被视为动态语言的关键。简单来说,反射机制指的是程序在运行时能够获取自身的信息。在 Java 中,只要给定类的名字,就可以通过反射机制来获得类的所有信息。
-
反射机制能干什么
①在运行时判断任意一个对象所属的类;
②在运行时构造任意一个类的对象;
③在运行时判断任意一个类所具有的成员变量和方法;
④在运行时获取泛型信息;
⑤在运行时调用任意一个对象的成员变量和方法;
⑥在运行是处理注解,生成动态代理
-
反射机制相关类
①Class类,代表类的实体,在运行的Java应用程序中表示类和接口
②Field类,代表类的成员变量/类的属性
③Method类,代表类的方法
④Constructor类,代表类的构造方法
-
反射的入口—Class类
(1)Class类是Java 反射机制的起源和入口
- 用于获取与类相关的各种信息
- 提供了获取类信息的相关方法
- Class类继承自Object类
(2)Class类是所有类的共同的图纸
- 每个类有自己的对象,好比图纸和实物的关系
- 每个类也可看做是一个对象,有共同的图纸Class,存放类的结构信息,比如类的名字、属性、方法、构造方法、父类和接口,能够通过相应方法取出相应信息
(3)Class类的对象称为类对象
-
反射机制的优缺点
1、优点:
在运行时获得类的各种内容,进行反编译,对于Java这种先编译再运行的语言,能够让我们很方便的创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代码的链接,更加容易实现面向对象。
2、缺点:
反射会消耗一定的系统资源;反射调用方法时可以忽略权限检查,因此可能会破坏封装性而导致安全问题。