Java基础入门(十七)之反射

  • 介绍:

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

  • 获取反射的Class文件方式三种

(1)Object类中的getClass()方法
(2)Class c=类名.class
(3)Class类中的静态方法forName

  • 注意事项:

(1)反射中所有的泛型都是?号
(2)反射方法中的返回值类型,都是Object类型

  • newInstance()

创建对象 相当于调用无参构造,完成对象的创建

  • 反射中的四个类

class (类对象)
Constructor(构造器对象)
Field(属性对象)
Method(方法对象)

  • 反射的步骤:

(1)导包 java.lang.reflect
(2)获取你想要的操作的class字节码对象
(3)调用方法
(4)操作信息

  • Constructor 构造器对象

无参构造 使用class类中的newInstance()方法创建对象
有参构造 获取Constructor构造器对象的方法 先获取构造器,然后再使用Constructor类中的newInstance()方法

  • Field 属性对象

1.被public修饰的属性

Field getField(String name) 返回一个 Field 对象,它反映此 Class
对象所表示的类或接口的指定公共成员字段。
Field类中的
void set(Object obj, Object value) 将指定对象变量上此 Field 对象表示的字段设置为指定的新值。
Object get(Object obj) 返回指定对象上此 Field 表示的字段的值。

扫描二维码关注公众号,回复: 3024762 查看本文章

2.所有的属性

Field getDeclaredField(String name) 返回一个 Field 对象,该对象反映此 Class
对象所表示的类或接口的指定已声明字段
Field 继承的方法
void setAccessible(boolean flag) 将此对象的 accessible 标志设置为指示的布尔值。

这里写图片描述

  • Method 方法对象

1.被public修饰的方法

Method getMethod(String name, Class<?>... parameterTypes) 返回一个 Method
对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法。
Method类中的方法 Object invoke(Object obj, Object... args) 对带有指定参数的指定对象调用由此 Method 对象表示的底层方法。

2.所有的方法

Method getDeclaredMethod(String name, Class<?>... parameterTypes) 返回一个 Method 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明方法。

这里写图片描述

猜你喜欢

转载自blog.csdn.net/xueer_z/article/details/81946206