首页 > 技术文章 > JAVA中的反射机制

Kingram 2018-07-28 10:36 原文

什么是反射?

1、Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;

对于任意一个对象,都能调用它的任意一个方法和属性

2、使用反射,可以在运行时对类Class、构造方法Constructor、普通方法Method、字段Field进行操作

 

Class对象

1、Class对象是对class文件(字节码文件)的描述对象。

2、获得Class对象

  已知类的完整路径名(字符串):Class.forName("路径名")

  已知类型:String.class,确定的参数列表

  已知对象:obj.Class()

3、常用方法

使用默认构造方法创建实例:newInstance()

 

Constructor对象

1、Constructor对象,是构造方法的描述对象。

2、获得构造方法

  公共的构造方法:Constructor<T>getConstructor(Class<?>...parameterTypes),可变参数用于确定形式参数列表

  已经声明的构造方法:Constructor<T> getDeclaredConstructor(Class<?>...parameterTypes),获得私有的构造

3、实例化对象实例

newInstance(Object...intargs),可变参数用于确定实际参数列表

 

Method对象

1、Method对象,是普通方法的描述对象

2、获得的方法

  公共方法:Method getMethod(String name,Class<?>...parameterTypes) 通过方法name获得方法,可变参数为方法的形式参数列表

  已经声明的方法:Method getDeclaredMethod(String name,Class<?>...parameterTypes)方法操作

3、执行指定方法

Object invoke(Object obj,Object...args) 执行指定对象obj,指定方法,可变参数为方法的实际参数列表

 

Field对象

1、Field对象,是字段的描述对象

2、获得方法

  所有字段:Field getField(String name),通过字段名称获得

  声明字段:Field getDeclaredField(String name)

3、操作

  获得内容:Object get(Object obj)

  设置内容:void set(Object obj,Object value),确定实例对象

 

反射机制应用实例传送门:https://www.cnblogs.com/Kingram/p/9263440.html

推荐阅读