java反射

发布时间 2023-08-02 22:15:09作者: _Explosion!

  JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的法的功能称为java语言的反射机制。 

  个人理解:Java支持在运行过程中通过对class文件的操作去获取任意一个类的属性和方法,即只要知道完整类名或获得class对象,即可操作其对应的属性和方法。

有三种方法可以得到class对象

  • Class.forName("完整类名")
  • 对象.getClass()
  • 类型.class

通过class对象可实现以下操作:

实例化对象

调用newInstance()方法可实例化一个class对应的类对象,但是需保证该类有无参构造方法

 

获得Method对象

调用getMethod(String name, Class<?>... parameterTypes)方法可获得对应的Method对象。

该方法参数为name:方法名  parameterTypes:方法的参数的class对象

Method对象可使用invoke方法直接调用---这种方法可以无视对象,直接使用对象的方法,类似于静态函数的使用。

Method对象还可以使用getAnnotation(Class<T> annotationClass)方法,获取方法的注解。该方法可用于AOP编程,通过反射获取切入点的注解信息以作对应通知

 

...待补充

 

 

 

参考文章:https://blog.csdn.net/qq_40408443/article/details/123206594?spm=1001.2014.3001.5506