【数据结构】反射

本文介绍了Java中的反射机制,它是许多框架的基础。通过反射,可以动态获取类的信息并操作,包括构造方法、成员变量和成员方法。获取Class对象有三种方式:Class.forName、类名.class和对象.getClass()。反射可用于创建对象、调用构造函数、设置和获取成员变量的值以及执行成员方法。
摘要由CSDN通过智能技术生成

目录

🌟反射

🌈 1. 获取class对象的三种方式

🌈 2. 反射获取构造方法

🌈 3. 反射获取成员变量

🌈 4. 反射获取成员方法


🌟反射

        反射是非常重要的,没有反射就没有java的任何框架。我们在java中写代码IDEA会自动提示的功能也是利用了反射。反射允许对成员变量,成员方法和构造方法的信息进行编程访问。简单来说,就是可以从类中获取到成员变量,成员方法,构造方法。不过在获取之前,要先获取class对象。所以我们先俩看一下获取对象的方式有哪些~

问题:在java中创建一个对象有几种方式?

        new  clone   反射   序列化 

🌈 1. 获取class对象的三种方式

        Class类是反射的核心类,反射的入口。在JVM中,每个类都有一个唯一的class对象来描述该类的属性或者方法等。每个类的class对象有且只有一个,由JVM产生。每个类加载到JVM之后,由JVM产生这个类的class对象。

程序获取class对象的三种方式:

(1)Class.forName("类的全名称")   -> 最为常用

(2)类名称.class   -> 一般是当做参数进行传递

(3)对象.getClass()   ->当已有这个类的对象时,才可以使用

 代码演示;

 🌈 2. 反射获取构造方法

Class类中用于获取构造方法的方法:

Constructor类中创建对象的方法:

(1)T newInstance(Object...initargs)
(2)setAccessible(boolean falg)

 代码演示:

   🌈 3. 反射获取成员变量

Class类中用于获取成员变量的方法:

方法用途
Field getField(String name)                    返回单个公共的成员变量对象
Field[] getFields()返回所有公共成员变量对象的数组
Field getDeclaredField(String name)返回单个成员变量对象
Field[]  getDeclaredFields()返回所有成员变量对象的数组

 Filed类中用于创建对象的方法

(1)void set(Object obj,Object value);
(2)Object get(Object obj);

代码演示: 

 🌈 4. 反射获取成员方法

Class类中用于获取成员方法的方法:

方法描述
Method  getMethod(String name,Class<?>...ParameterTypes)返回单个公共成员的方法对象
Method  getDeclaredMethod(String name,Class<?>...ParameterTypes)返回单个成员方法对象
Method[] getMethods()返回所有 公共成员方法对象的数组,包括继承的
Method[] getDeclaredMethods()返回所有成员方法对象的数组,不包括继承的

Method类中用于创建对象的方法:

Object invoke(Object object,Object...args) :运行方法
(1)参数1:用object对象调用该方法
(2)

参数2:覅用方法的传递参数,如果没有就不写

代码演示:使用到的Student类

 获取方法:


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值