当前位置:网站首页>反射机制
反射机制
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打开访问权限
作用
边栏推荐
- Leetcode 899. An orderly queue
- 微信小程序 生成跳转体验版url,可直接跳转到体验版小程序(可通过此方法测试模板消息)
- leetcode 136. Numbers that appear only once (XOR!!)
- 独立站卖家在哪些平台做社交媒体营销效果最好?
- leetcode 448. Find All Numbers Disappeared in an Array 找到所有数组中消失的数字(简单)
- svg胶囊药样式切换按钮
- 在树莓派上搭建属于自己的网页(4)
- 函数,递归以及dom简单操作
- Likou 707 - Design Linked List - Linked List
- 火了十几年的零信任,为啥还不能落地
猜你喜欢
tidyverse based on data.table?
不专业面试官的经验总结
error: C1083: 无法打开包括文件: “QString”: No such error: ‘QDir‘ file not found
信使mRNA甲基化偶联3-甲基胞嘧啶(m3C)|mRNA-m3C
华为设备配置VRRP负载分担
卷起来!阿里高工携 18 位高级架构师耗时 57 天整合的 1658 页面试总结
为什么 BI 软件都搞不定关联分析
详解虚拟机!京东大佬出品 HotSpot VM 源码剖析笔记(附完整源码)
史兴国对谈于佳宁:从经济模式到落地应用,Web3的中国之路怎么走?
面试官:为什么 0.1 + 0.2 == 0.300000004?
随机推荐
leetcode 268. Missing Numbers (XOR!!)
ES6简介及let、var、const区别
RNA-ATTO 390|RNA-ATTO 425|RNA-ATTO 465|RNA-ATTO 488|RNA-ATTO 495|RNA-ATTO 520近红外荧光染料标记核糖核酸RNA
详解虚拟机!京东大佬出品 HotSpot VM 源码剖析笔记(附完整源码)
TweenMax.js向日葵表情变化
Leetcode 16. Numerical integral power (power + fast recursive/iteration)
glusterfs build and use
Mapper输出数据中文乱码
leetcode 461. 汉明距离
2022.8.2
刷题错题录1-隐式转换与精度丢失
分分钟教你读取 resources 目录下的文件路径
Often forget HiFlow 】 【 check-in?Use tencent cloud scenario connector to remind you every day.
leetcode 125. 验证回文串
力扣203-移除链表元素——链表
svg胶囊药样式切换按钮
leetcode 2119. Numbers reversed twice
ES6解构赋值--数组解构及对象解构
AWTK开发编译环境踩坑记录1(编译提示powershell.exe出错)
微信小程序 生成跳转体验版url,可直接跳转到体验版小程序(可通过此方法测试模板消息)