Java基础---反射

news2024/11/25 8:14:25
什么是反射?

反射允许对成员变量,成员方法和构造方法的信息进行编程访问。

这么说可能比较抽象,可以简单理解为:反射就是一个人,可以把类里面的成员变量,成员方法,构造方法都获取出来。

     

并且可以获取到成员变量、构造方法、成员方法的所有信息。

对于成员变量:我们可以获取到它的 ①修饰符 ②属性名称 ③类型 ④ 获取变量值/赋值

对于构造方法:可以获取到①修饰符 ②形参 ③方法名  ,甚至还可以利用获取出来的方法创建对象。

对于成员方法:可以获取到①修饰符 ②形参 ③方法名 ④返回值 ⑤抛出的异常 ⑥注解  ,还可以运行获取出来的方法。

总的来说,利用反射,我们可以获取类里面的所有信息。

获取class对象的三种方式:

①: Class.forName("全类名")    ②:类名.Class    ③: 对象.getClass() 

那么这三种方式我们该使用哪一种呢?

其实这3种方式对应着Java里面3种不同的阶段,如果创建一个类的对象,分为以下3个阶段:

①:把java文件编写成class字节码文件。(源代码阶段,还没有把代码加载到内存中,在硬盘中进行操作)  此时,我们可以使用方式①

②:在运行代码前,要先把字节码文件加载到内存中。(加载阶段)   ----方式②

③:在内存中,可以创建类的对象,比如:A   a   =   new   A();  (运行阶段)  ----方式③

一般是这样使用,并不绝对。

利用反射获取构造方法:

        

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

T newInstance(Object...  initargs): 根据指定的构造方法创建对象,上面的getDeclaredConstructors()方法虽然可以获取所有的构造方法,但是不能使用私有的构造方法来创建对象。先要取消自动检查:setAccessible(true)。

        

利用反射获取成员变量:

        

                ​​​​​​​        

利用反射获取成员方法:

        

        ​​​​​​​        ​​​​​​​        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1531388.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用友NC Cloud runScript SQL注入漏洞复现

0x01 产品简介 用友 NC Cloud 是一种商业级的企业资源规划云平台,为企业提供全面的管理解决方案,包括财务管理、采购管理、销售管理、人力资源管理等功能,基于云原生架构,深度应用新一代数字技术,打造开放、 互联、融合、智能的一体化云平台,支持公有云、混合云、专属云…

jmeter打开文件报异常无法打开

1、问题现象: 报错部分内容: java.desktop does not export sun.awt.shell to unnamed module 0x78047b92 [in thread "AWT-EventQueue-0"] 报错部分内容: kg.apc.jmeter.reporters.LoadosophiaUploaderGui java.lang.reflect.Invo…

华为ENSP的VLAN原理和配置命令

CSDN 成就一亿技术人! 作者主页:点击! ENSP专栏:点击! CSDN 成就一亿技术人! ————前言———— VLAN(Virtual Local Area Network,虚拟局域网)是一种在物理网络基…

Transformer的前世今生 day05(Self-Attention、

Self-Attention 前情提要 注意力机制:我们在看一幅图的时候,不会去看它的所有信息,相反我们倾向于看一些重点,并把我们的焦点放到这些重要信息上,过程如下: 首先:Q、K相乘求相似度&#xff0c…

dB、dBm、dBw是什么

1、dB,3dB 3 dB,表示功率增加为2倍;10 dB,表示功率增加为10倍。 -3 dB,表示功率减小为1/2;-10 dB,表示功率减小为1/10。 dB的使命就是把很大的数,用很小的数简短地表示出来&#x…

【二分查找】算法例题

目录 十八、二分查找 114. 搜索插入位置 ① √- 115. 搜索二维矩阵 ② 116. 寻找峰值 ② √- 117. 搜索旋转排序数组 ② 118. 在排序数组中查找元素的第一个和最后一个位置 ② √ 119. 寻找寻钻排序数组中的最小值 ② 120. 寻找两个正序数组的中位数 ③ 136. 直线上最多…

【Linux】Linux安装软件---软件包管理器 yum

主页:醋溜马桶圈-CSDN博客 专栏:Linux_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.Linux中安装软件 1.1 源代码安装 1.2 rpm包安装 1.3 yum安装 1.3.1 举例 1.3.2 图示yum下载安装 2.Linux系统的生态 如何选…

西瓜书机器学习AUC与ℓ-rank(loss)的联系理解以及证明(通俗易懂)

前言 在学习到这部分时,对 ℓ-rank 以及AUC的关系难以理解透彻,在网上看到其他博主也并未弄明白,大家大多写自己的理解,我希望您在看完这篇文章时能够深刻理解这二者的关系,如果我的理解有误,希望您在评论…

为什么共享单车泊车点可以识别得如此精准?

共享单车解决了民众最后一公里的出行问题,方便快捷,低碳环保,缓解了交通拥堵。然而,乱停乱放成为这一新兴事物发展过程中需要解决的迫在眉睫的问题。这真是个伤脑筋的问题,虽然很多城市已经推出共享单车电子围栏,由于G…

Linux入门-常见指令及权限理解

目录 1、Linux背景 1.1、发展历史 1.2、开源 1.3Linux企业应用现状 2、Linux下的基本命令 2.1、ls 指令 2.2、pwd 命令 2.3、cd 命令 2.4、touch命令 2.5、mkdir 命令 2.6、rmdir 指令和 rm指令 2.7 man 指令 2.8、cp指令 2.9、mv 指令 2.10 cat 2.11 more 2…

LLM如何处理长上下文:Lost in the middle

论文地址:Lost in the Middle: How Language Models Use Long Contexts 论文总结:写prompt的时候,需要注意内容的顺序,把重要的信息放在最前面或者最后面。 大型语言模型大有用处,在设计 prompt 方面,人们…

Elasticsearch实战:索引阻塞 —— 数据保护的终极武器

文章目录 1、索引阻塞的种类2、什么时候使用阻塞?场景1:进行系统维护场景。场景2:保护数据不被随意更改场景。场景3:优化资源使用的场景。场景4:遵守安全规则场景。 3、添加索引阻塞API4、解除设置 API5、小结6、参考 …

【无标题】【数据结构】受限制的线性表——队列

🧧🧧🧧🧧🧧个人主页🎈🎈🎈🎈🎈 🧧🧧🧧🧧🧧数据结构专栏🎈🎈🎈&…

springboot企业级抽奖项目-系统设计

数据设计 E-R图 数据主体是活动(game),内置活动策略(game_rules),通过关联表(game_product)和奖品(product)联动,和用户(user&#x…

算法打卡day21|回溯法篇01|理论知识,Leetcode 77.组合

回溯法理论知识 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。所以回溯函数也就是递归函数,指的都是一个函数。 回溯法的效率 回溯法并不是什么高效的算法。因为回溯的本质是穷举,…

演讲嘉宾公布 | 智能家居与会议系统专题论坛将于3月28日举办

一、智能家居与会议系统专题论坛 智能家居通过集成先进的技术和设备,为人们提供了更安全、舒适、高效、便捷且多彩的生活体验。智能会议系统它通过先进的技术手段,提高了会议效率,降低了沟通成本,提升了参会者的会议体验。对于现代…

内网渗透学习-环境搭建

1、环境搭建测试 虚拟机网络环境配置,模拟外网和内网 主机操作系统网络内网ip外网ip物理主机window10vmnet8192.168.70.1攻击机kali Linuxvmnet8192.168.70.134域控主机win server 2008 r2vmnet0192.168.52.138域成员主机win server 2k3vmnet0192.168.52.141服务器…

【Windows Defender 排除指定 文件夹、文件夹以提升性能】

使用webStorm时候提醒排出程序和目录提升性能, 于是我就把我的代码目录和常用程序全部排出, 不过不知道能不能提升多少性能, 先加上再说 一.使用UI配置排出项 隐私与安全性安全中心 病毒与威胁防护 添加或删除排出项 配置 二.使用命令配置 使用 PowerShell开启自动排除列表…

基于深度学习的场景文本检测

CTPN 简介: 基于目标检测方法的文本检测模型,在Faster RCNN的基础上进行了改进,并结合双向LSTM增强了序列提取特征,通过anchor和gt的设计将文本检测任务转化为一连串小尺度文本框的检测。 解决问题: 文本长短不一&…

Android14 - AMS之Activity启动过程(2)

Android14 - AMS之Activity启动过程(1)-CSDN博客 Android14 - AMS之Activity启动过程(3)-CSDN博客 上篇梳理到: TaskDisplayArea和Task的复用与创建 TaskDisplayArea executeRequest后,随后调用startActivi…