java反射机制

反射
动态获取信息以及动态调用对象的方法的功能称为java语言的反射机制

Java反射相关的类主要包括

  • Class 类型
  • Constructor 构造方法
  • Method 方法
  • Field 属性

Class类
Class类中的主要方法

  • getMethod:返回类中某一个方法的实例
  • getMethods: 返回类中所有方法的实例
  • getField:返回类中某一个属性的实例
  • getFields:返回类中所有属性的实例
  • getConstructor:返回类中的一个构造方法的实例


获得Class类实例的常用方法有如下三个

  • Object类中的getClass方法(对象)
  • 类名.class(类名必须是常量)
  • Class类的静态方法forName(String name)(类名可以是变量)

Constructor类

  • getName:返回构造方法的名字
  • getParameterTypes:返回构造方法的参数类型
  • newInstance(Object... initargs) :创建实例

Constructor实例都是通过Class类的方法获得

  • Constructor<T> getConstructor(Class... parameterTypes) :通过指定参数类型,返回构造方法实例。
  • Constructor[] getConstructors() :返回该类的所有构造方法实例

Method类

  • getReturnType:获得方法返回值类型
  • getName:获得方法名字
  • getParameterTypes:获得方法参数类型
  • invoke(Object obj, Object... args) :使用obj调用该方法,参数为args

Method实例都是通过Class类的方法获得

  • Method getMethod(String name, Class... parameterTypes) :通过指定方法名,参数类型,返回一个Method实例
  • Method[] getMethods() :返回该类中所有方法的Method实例

Field类

  • getName:返回属性的名字
  • getXXX:例如,getFloat返回该属性float类型的值
  • setXXX:例如,setFloat为属性赋值float类型的值

获得Field实例,都是通过Class中的方法实现

  • public Field getField(String name)
  • 通过指定Field名字,返回Field实例
  • 注意Field的访问权限
  •  

 

 

原文地址:https://www.cnblogs.com/-maji/p/7273583.html