反射相关知识点

news/2024/11/7 14:34:13/

这里写目录标题

  • 反射
    • 概述
    • 获取Class对象的三种方式
      • 总结
      • 具体代码演示
    • 获取构造方法以及构造方法里的信息
      • 利用Class对象调用对应方法,以及用调取出来的Constructor(构造器类)创建对象
        • 具体代码
    • 获取成员变量
      • 利用Class对象调用对应方法,以及用调取出来的Field类修改对象中成员变量的值
        • 具体代码
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录

反射

概述

在这里插入图片描述
在这里插入图片描述
反射通过字节码文件进行操作,所以要获取Class对象

获取Class对象的三种方式

总结

在这里插入图片描述

具体代码演示

在这里插入图片描述
注意,用第一种方法时,参数是全类名,全类名的获取可以复制粘贴,具体方式如下
在这里插入图片描述
找到目标类,打开,选中类名右键

获取构造方法以及构造方法里的信息

在这里插入图片描述

利用Class对象调用对应方法,以及用调取出来的Constructor(构造器类)创建对象

在这里插入图片描述

具体代码

注意要先获取class字节码对象

在这里插入图片描述
clazz是class对象,调用对应的方法获取到构造器对象,并用构造器对象接住,注意,获取单个构造方法信息时,调用方法的参数里要跟想要获取的构造方法参数一致,且形式如上图所示

第一个方法用于获取修饰符对应的整形形式
第二个方法用于得到参数,并生成数组,

小技巧
数组名.for 一回车 可以生成增强for循环,并生成循环变量
光标点击参数括号里,ctrl+p 可以提示参数类型
在这里插入图片描述
该class对象还可以根据指定的构造方法创建对象,只是需要临时取消权限校验以及需要强转类型。

获取成员变量

在这里插入图片描述

利用Class对象调用对应方法,以及用调取出来的Field类修改对象中成员变量的值

在这里插入图片描述

具体代码

在这里插入图片描述
在这里插入图片描述
最后一个点,获取成员变量记录的值,首先是要创建对象,并用构造方法进行赋值

之后,临时取消权限校验
用获取到的Field对象(也就是成员变量)调用get方法,参数传入具体类对象,就可以获取到成员变量的值
在这里插入图片描述
修改对象里面记录的值,直接用获取到的目标成员变量调用set方法,参数是“哪个对象,新的内容”

二级目录

二级目录

二级目录

这里写目录标题

  • 反射
    • 概述
    • 获取Class对象的三种方式
      • 总结
      • 具体代码演示
    • 获取构造方法以及构造方法里的信息
      • 利用Class对象调用对应方法,以及用调取出来的Constructor(构造器类)创建对象
        • 具体代码
    • 获取成员变量
      • 利用Class对象调用对应方法,以及用调取出来的Field类修改对象中成员变量的值
        • 具体代码
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录

一级目录

二级目录

二级目录

二级目录

这里写目录标题

  • 反射
    • 概述
    • 获取Class对象的三种方式
      • 总结
      • 具体代码演示
    • 获取构造方法以及构造方法里的信息
      • 利用Class对象调用对应方法,以及用调取出来的Constructor(构造器类)创建对象
        • 具体代码
    • 获取成员变量
      • 利用Class对象调用对应方法,以及用调取出来的Field类修改对象中成员变量的值
        • 具体代码
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录

一级目录

二级目录

二级目录

二级目录

这里写目录标题

  • 反射
    • 概述
    • 获取Class对象的三种方式
      • 总结
      • 具体代码演示
    • 获取构造方法以及构造方法里的信息
      • 利用Class对象调用对应方法,以及用调取出来的Constructor(构造器类)创建对象
        • 具体代码
    • 获取成员变量
      • 利用Class对象调用对应方法,以及用调取出来的Field类修改对象中成员变量的值
        • 具体代码
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录

一级目录

二级目录

二级目录

二级目录


http://www.ppmy.cn/news/180445.html

相关文章

让GPT给我出JS笔试题

JS 笔试题 笔试题是gpt给我出的。上面统一放题目,想要题目和答案一起看的可以往下滚动。 简单难度 编写一个函数,接受一个字符串作为参数,并返回该字符串的反转结果。例如,输入"Hello World!“,输出”!dlroW o…

集成灶排名十大品牌都有谁?金帝集成灶排名第几?

经过十几年的飞速发展,我国集成灶产品的技术与工艺都已经相当成熟,市场上的集成灶品牌也越来越多。为了在众多品牌当中选到真正优质的集成灶产品,许多消费者会参考一些比较专业的集成灶排行榜,比如集成灶排名十大品牌。那么&#…

集成灶品牌排行榜,集成灶十大品牌排名,森歌集成灶排第几

经常下厨的女性朋友会发现,皮肤越发暗黄,那是因为厨房油烟中含有一氧化碳、二氧化碳等300多种有害物质,长时间接触油烟之后,皮肤很容易生长皱纹和斑。与其花费大量金钱精力在护肤上,不如将油烟扼杀在摇篮里&#xff0c…

全面大涨原因!多家基金解读

周五!大涨! 6月2日,A股以强势反弹结束本周的交易,整体全面上行,几乎所有主流指数都收涨。沪指高开高走,深成指、创业板指涨超1%。总体来看,个股涨多跌少,两市超3300股处于上涨状态。…

全志D1s/F133学习笔记(2)——MangoPi-MQ(芒果派麻雀)Tina系统编译烧录

文章目录 一、SDK和资料:二、SDK结构:三、环境配置四、打补丁匹配麻雀开发板补丁修改文件分析: 五、配置和编译六、烧录七、上电运行八、补丁包修改1、原因分析2、修改方法3、编译运行 附:部分开机LOG 站在晕哥的肩膀上&#xff0…

嵌入式Linux--全志V3s--NOR Flash的使用(一)

目录 一、全志V3s简介板子介绍 二、简介1、永远的嵌入式Linux四大件2、因为选择的存储方式而做的妥协3、因为芯片公司的原因而需要熟悉的知识4、用于nor flash的分区配置 三、编译Uboot1、下载uboot源码2、配置Flash支持型号3、配置uboot默认环境变量(1)…

Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds

错误:Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds 错误告诉我们服务器不能在45秒的时间内启动,我们可以通过修改服务器的配置文件来设置服务器的启动时间。 修改 workspace\.metadata\.plugins\org.eclipse.wst.se…

猿创征文 | 国产数据库之在k8s环境下部署RadonDB MySQL集群

猿创征文 | 国产数据库之在k8s环境下部署RadonDB MySQL集群 一、RadonDB MySQL介绍1.RadonDB MySQL简介2.RadonDB MySQL的应用场景3.RadonDB MySQL核心功能4.RadonDB MySQL架构图二、检查本地k8s环境1.检查k8s节点状态2.检查helm版本三、添加helm仓库1.添加helm仓库源2.查看hel…