Java中的反射机制

xiaoxiao2021-02-27  262

1、反射机制是java中的一种动态特性API。动态运行:在运行期间再确定创建哪个类的对象,再动态创建哪个对象,再执行哪个方法。

     (1)动态加载类;

     (2)动态创建对象;

     (3)动态获取类信息(属性方法构造器等);

     (4)动态调用方法;

     (5)动态获取、设置属性的值;

     (6)动态处理注解信息。

     常见框架的底层都采用了反射API,java中的多态就使用反射,动态代理也使用反射。

2、应用实例:

     有一个类,包含很多以test为开头的方法,要求编写代码执行这个类中以test为开头的方法。

     这个类有无参构造器,这些方法都无返回值,无参数,是非静态方法。

     分析:(1)不知道类名;(2)不知道方法名。

     解决方法:必须使用动态反射API实现上述功能。

3、动态加载类

     在运行期间,根据动态给定的类名,动态加载类到方法区。

     API代码:Class.forName(类名);                

     案例:Scanner in = new Scanner(System.in);

               String className = in.nextLine();

               Class.forName(className);

4、如何处理注解

     使用反射API在运行期间处理注解。

5、invoke方法

6、反射的优缺点:

     (1)优点:动态执行,可以在事先不知道类名、方法名的情况下加载类,创建对象,执行方法,访问属性。

     (2)缺点:编程复杂,性能差。

转载请注明原文地址: https://www.6miu.com/read-8695.html

最新回复(0)