Java视频------------反射

本文深入讲解Java反射机制的基本概念及应用。从动态语言特性出发,介绍如何利用反射调用对象属性和方法,获取运行时类信息,以及创建对象。涵盖Class类的理解、获取属性和方法等核心知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、反射基本概念
在这里插入图片描述
2、动态语言和静态语言
在这里插入图片描述
3、反射功能
在这里插入图片描述
在这里插入图片描述
4、反射的简单使用
学反射前对象属性方法的调用
在这里插入图片描述

学反射后使用反射调用对象属性方法
在这里插入图片描述
注:
通过反射可以调用私有结构:
在这里插入图片描述
在这里插入图片描述
5、Class类的理解
由上面的反射构建的Class类的对象:
Class clazz = Person.class;
Person类加载到内存中,称为运行时类,这个类是Class的一个实例,又因为Person是关键字所以再后面加一个.class。
(Person.class是一个Class类的对象)
在这里插入图片描述

6、获取运行时类的四种方法
这四种方法获取的运行时类都是同一个。
在这里插入图片描述
7、哪些类可以有Class对象
在这里插入图片描述
只要数组的元素类型和维度一样,就是同一个Class
在这里插入图片描述
8、类的加载
在这里插入图片描述
在这里插入图片描述
最后两个输出null,因为无法获取引导类加载器
在这里插入图片描述
9、使用反射来创建对象。
Class clazz = Person.class;\先过去Person运行时类
Object obj = clazz.newInstance();\创建运行时类的对象

在这里插入图片描述
10、反射的动态性
在不知道具体创建谁的对象,只有在运行时才能知道,这样就避免了无法使用new来创建具体对象的问题了。
在这里插入图片描述
在这里插入图片描述
11、使用反射获取运行时类的属性
getFields获取属性(本类及其父类的public属性)。
getDeclaredFields获取当前运行时类所有声明的属性。(不包括父类)
在这里插入图片描述
获取属性的权限修饰符,数据类型,变量名。
在这里插入图片描述
11、使用反射获取运行时类的方法
与上面类似
在这里插入图片描述
获取方法的权限修饰符、返回值类型,方法名、、、、
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
12、使用反射获取运行时类的构造方法
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
14、获取运行时类的接口
在这里插入图片描述
15、
在这里插入图片描述
16、
在这里插入图片描述
17、使用反射操作运行时类对象的具体属性
私有的属性此方法还是不能获取
在这里插入图片描述
重点方法:可以获取私有属性,且进行修改。
注意:name.setAccessible(true)获取修改的权限
在这里插入图片描述
17、使用反射操作运行时类对象的具体方法
非静态方法:
invoke方法返回的就是对象具体方法的返回值,且必须有一个参数,指明方法的调用者(对象p)
在这里插入图片描述
静态方法:invoke不需要指定对象
在这里插入图片描述
18、使用反射操作运行时类对象的具体构造器
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值