当前位置:网站首页>反射机制
反射机制
2022-08-03 20:47:00 【昭昭..】
反射的定义
什么是反射:
反射是java提供的一套动态执行的API。也就是说是在运行状态中,对于任意一类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能成为java语言的反射机制
Class属性的获取
Class对象: 是反射的入口,加载类到内存。获取class对象的三种方式
方式一、(知道包名+ 类名)动态获取
class.forname(“”);
获取结果:
包名+类名可以是自定义的也可以是java自带的
方式二、类名.class 获取
在java中所有的类都默认有一个.class属性
获取结果
方式三、对象.getclass
经常用于动态检查某个对象的类型
获取结果:
根据类名创建对象
.newInstance();
获取结果
访问对象属性
- 步骤1:加载class属性
- 步骤2:调用.getFields方法

结果:
读取对象的属性值
读取公有属性
1.获取指定公有属性:getField
- 创建对象
- 读取属性值
结果:
2.获取全部公有属性:getFields
结果
3.读取全部属性:包括私有属性

200的属性值是私有,必须打开访问权限,否则会报错
4.读取指定属性值(包括私有)
结果:
修改对象属性:set
结果:
访问方法
- 步骤1:获取Class
- 步骤2.在类上找到声明的法:getDeclaredMethod
- 步骤3.在对象上调用方法
结果:

动态打开访问权限
在利用反射访问属性/方法之前使用setAccessible打开访问权限
作用
边栏推荐
猜你喜欢

数据库定时备份winserver2012篇

Lecture topics and guest blockbuster, TDengine developers conference to promote data technology "broken"

Why BI software can't handle correlation analysis

伪标签汇总

PyCharm函数自动添加注释无参数问题

ECCV 2022 | 清华&腾讯AI Lab提出REALY:重新思考3D人脸重建的评估方法

leetcode 231. Powers of 2

为什么 BI 软件都搞不定关联分析

Li Mu hands-on learning deep learning V2-BERT fine-tuning and code implementation

Markdown语法
随机推荐
2021年数据泄露成本报告解读
Zero trust, which has been popular for more than ten years, why can't it be implemented?
if _name_ == “__main__“:NameError: name ‘_name_‘ is not defined
分分钟教你读取 resources 目录下的文件路径
图神经网络怎么入门?一文带你了解图神经网络入门路径-GNN入门
leetcode 072. 求平方根
力扣203-移除链表元素——链表
ES6 deconstruction assignment - array object deconstruction and deconstruction
chartjs自定义柱状图插件
有趣的opencv-记录图片二值化和相似度实现
leetcode 136. 只出现一次的数字(异或!!)
ES6简介及let、var、const区别
How can a cloud server safely use local AD/LDAP?
独立站卖家在哪些平台做社交媒体营销效果最好?
461. 汉明距离
glusterfs 搭建使用
Advantages and Disadvantages of Blind and Buried Via PCB Stacked Via Design
化算力为战力:宁夏中卫的数字化转型启示录
Edge box + time series database, technology selection behind Midea's digital platform iBuilding
刷题错题录1-隐式转换与精度丢失