当前位置:网站首页>反射机制
反射机制
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打开访问权限
作用
边栏推荐
- 开源一夏 |如何优化线上服务器
- 华为设备配置VRRP负载分担
- wordpress建立数据库连接时出错
- 手动输入班级人数及成绩求总成绩和平均成绩?
- Several difficult problems in DDD
- Orcad Capture Cadence 新建原理图多部分smybol和Homogeneous、Heterogeneous类型介绍教程
- 伪标签汇总
- leetcode 326. 3 的幂
- RNA-ATTO 390|RNA-ATTO 425|RNA-ATTO 465|RNA-ATTO 488|RNA-ATTO 495|RNA-ATTO 520近红外荧光染料标记核糖核酸RNA
- Kubernetes资源编排系列之三: Kustomize篇 作者 艄公(杨京华) 雪尧(郭耀星)
猜你喜欢
Interesting opencv - record image binarization and similarity
tRNA甲基化偶联3-甲基胞嘧啶(m3C)|tRNA-m3C (3-methylcy- tidine)
Transformer怎么入门?如何学习Transformer?
从开发到软件测试:除了扎实的测试基础,还有哪些必须掌握 ?
DDD 中的几个困难问题
函数,递归以及dom简单操作
【使用 Pytorch 实现入门级的人工神经网络】
转运RNA(tRNA)甲基化修饰7-甲基胞嘧啶(m7C)|tRNA-m7G
Power button - 203 - remove the list elements linked list
Markdown syntax
随机推荐
华为设备配置VRRP与BFD联动实现快速切换
云图说丨初识华为云微服务引擎CSE
PyCharm function automatically add comments without parameters
xss.haozi练习通关详解
YARN功能介绍、交互流程及调度策略
glusterfs 搭建使用
直播小程序源码,UI自动化中获取登录验证码
解决This application failed to start because no Qt platform plugin could be initialized的办法
15年软件架构师经验总结:在ML领域,初学者踩过的五个坑
leetcode 16.01. Swap numbers (swap the values of 2 numbers without using temporary variables)
svg+js订单确认按钮动画js特效
ES6解构赋值--数组解构及对象解构
基于DMS的数仓智能运维服务,知多少?
RNA核糖核酸修饰荧光染料|HiLyte Fluor 488/555/594/647/680/750标记RNA核糖核酸
9月1日起我国给予多哥等16国98%税目产品零关税待遇
Lecture topics and guest blockbuster, TDengine developers conference to promote data technology "broken"
Auto.js脚本程序打包
chartjs自定义柱状图插件
力扣59-螺旋矩阵 II——边界判断
tRNA甲基化偶联3-甲基胞嘧啶(m3C)|tRNA-m3C (3-methylcy- tidine)