Java反射到底有什么用?

反射

凡是操作Class对象的都是基于反射.

简介

反射可以在程序运行时期获取到一个类的成员变量,成员方法,构造方法等并进行使用.

反射操作的是Class类型的对象,通过这个Class类型的对象获取到类中的成员变量,构造方法,成员方法等信息.

获取

1.对象实例.getClass()

2.类名.Class()

3.Class.forName(String className)

注意:一个类只有一个Class类型对象,无论怎么获取,获取到的都是同一个Class.

​ 所有的数据类型都有class属性,包括基本类型.

Class中常见方法

获取类名:

​ – getName() 获取类的名字(全限定名)

​ – getSimpleName() 获取简单的类名(不含包名,不是全限定名)

获取成员变量:

​ – getFields() 获取类中所有的成员变量

​ – Field getField(成员变量名字) 获取指定的成员变量

​ set(Object obj, Object value) obj 给哪个对象的成员变量设置值 value 设置成什么值.

​ get(Object obj) 获取哪个对象该成员变量的值

获取构造方法:

​ – getConstructors() 获取类中所有的构造方法

​ – getConstructor(该有参构造所需参数) 获取一个类中指定的构造方法

获取成员方法:

​ – getMethods() 获取类中所有的成员方法

​ – Method getMethod(方法名,该方法参数列表) 获取指定方法对象!!!

​ Method表示成员方法

​ Object invoke(object obj , Object… args) 动态代理的灵魂. 方法对象!!!

获取实例对象:

​ – newInstance() 创建实例对象(默认使用空参构造创建对象)

​ – newInstance(有参构造所需参数) 创建实例对象

反射步骤

1.获取类的Class对象。

2.通过Class对象获取类的内容(成员变量,构造方法,成员方法)。

3.使用这个内容。

猜你喜欢

转载自blog.csdn.net/numbbe/article/details/109280106
今日推荐