第二十三章 反射

news2025/2/23 14:16:37

第二十三章 反射

  • 1.反射机制问题
  • 2.反射快速入门
  • 3.发射原理图
  • 4.反射相关类
  • 5.发射调用优化
  • 6.Class类分析
  • 7.Class常用方法
  • 8.获取Class对象的6种方式
  • 9.哪些类型有Class对象
  • 10.动态和静态加载
  • 11.类加载流程图
  • 12.类加载五个阶段(1)
  • 13.类加载五个阶段(2)
  • 14.获取类结构信息(1)
  • 15.获取类结构信息(2)
  • 16.反射爆破创建实例
  • 17.反射爆破操作属性
  • 18.放射爆破操作方法
  • 19.反射课后练习

在这里插入图片描述

1.反射机制问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.反射快速入门

在这里插入图片描述

假如Cat多了一个cry方法
在这里插入图片描述

我们想要去调用这个方法,只有修改源码
在这里插入图片描述
但现在我们不需要修改源码,修改配置文件即可
在这里插入图片描述
我们的源码没有修改,但我们的功能已经发生了变化
在这里插入图片描述

3.发射原理图

在这里插入图片描述
在这里插入图片描述

4.反射相关类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5.发射调用优化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
快了一点点
在这里插入图片描述

6.Class类分析

在这里插入图片描述
2.
在这里插入图片描述
在这里插入图片描述
3.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

6,7.
在这里插入图片描述

7.Class常用方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.获取Class对象的6种方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.哪些类型有Class对象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.动态和静态加载

在这里插入图片描述
静态加载
这里不在idea中写,因为在idea中写马上就会报错了
在这里插入图片描述
编译一下,报错
在这里插入图片描述
这里我们的Dog类不一定会用到,但这里不管这么多,怎么在加载的时候就会报错,这里称为静态加载

动态加载
在这里插入图片描述
在这里插入图片描述
编译通过
在这里插入图片描述
这里确实生成了CLASS文件,说明编译通过
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11.类加载流程图

在这里插入图片描述
在这里插入图片描述

12.类加载五个阶段(1)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13.类加载五个阶段(2)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14.获取类结构信息(1)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里父类不局限于它的直接父类,它的父类的父类也可以
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在示例的类中添加构造器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
示例的类实现接口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在示例的类上加一个注解信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

15.获取类结构信息(2)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面我们调整一下给出的类的示例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将示例的类做出修改
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这m2,m3,m4都是无参的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16.反射爆破创建实例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里会报错,getConstructor返回的是public构造器对象
在这里插入图片描述

我们下面修改一下,getDeclaredConstructor可以得到所有的构造器对象
在这里插入图片描述
这里还是会报错,一个非法的访问异常
在这里插入图片描述
下面我们做一个修改
在这里插入图片描述
在这里插入图片描述

17.反射爆破操作属性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:这里不能使用getField,因为name为private的
在这里插入图片描述
这里还是会报错,非法的访问(这里的name为private)
在这里插入图片描述
下面我们做一个修改
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里用null也可以,因为name为static,而静态的name是属于所有对象的
注意:只有静态的属性才可以置空
在这里插入图片描述
在这里插入图片描述

18.放射爆破操作方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

19.反射课后练习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建成功
在这里插入图片描述

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

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

相关文章

OpenGL FXAA抗锯齿算法(Qt,Consloe版本)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 之前已经提供了使用VCG读取Mesh的方式,接下来就需要针对读取的网格数据进行一些渲染操作了。在绘制Mesh数据时总会遇到图形的抗锯齿问题,OpenGL本身已经为我们提供了一种MSAA技术,但该技术对于一些实时渲染性能有…

【代数学作业1完整版-python实现GNFS一般数域筛】构造特定的整系数不可约多项式:涉及素数、模运算和优化问题

代数学作业1-完整版:python实现GNFS一般数域筛 写在最前面背景在GNFS算法中选择互质多项式时,需要考虑哪些关键因素,它们对算法的整体运行时间有何影响? 练习1题目题目分析Kleinjung方法简介通用数域筛法(GNFS)中的多…

论文阅读--EFFICIENT OFFLINE POLICY OPTIMIZATION WITH A LEARNED MODEL

作者:Zichen Liu, Siyi Li, Wee Sun Lee, Shuicheng YAN, Zhongwen Xu 论文链接:Efficient Offline Policy Optimization with a Learned Model | OpenReview 发表时间: ICLR 2023年1月21日 代码链接:https://github.com/s…

Nginx 代理静态资源,解决跨域问题

😂 背景:移动端 H5 项目,依赖了一个外部的 JS 文件。访问时,出现跨域,导致请求被 block。 当前域名:https://tmcopss.test.com要访问的 JS 文件:https://tm.test.com/public/scripts/y-jssdk.j…

下载与安装Python解释器

文章目录 一. 下载Python解释器二. 安装Python解释器总结 一. 下载Python解释器 下载地址:https://www.python.org/downloads/release/python-372/ 查找目标文件:Windows x86-64 executable installer – 单击即可下载。 这里贴出我下载好的网盘链接…

从0到1实战,快速搭建SpringBoot工程

目录 一、前言 二、准备工作 2.1 安装JDK 2.2 安装Maven 2.3 下载IDEA 三、从0到1搭建 3.1 创建SpringBoot工程 3.2 运行SpringBoot工程 四、总结 一、前言 SpringBoot是一个在Spring框架基础上构建的开源框架,不仅继承了Spring框架原有的优秀特性&#x…

软件测试/测试开发丨Python 模块与包

python 模块与包 python 模块 项目目录结构 组成 package包module模块function方法 模块定义 定义 包含python定义和语句的文件.py文件作为脚本运行 导入模块 import 模块名from <模块名> import <方法 | 变量 | 类>from <模块名> import * 注意&a…

JAVA反序列化之URLDNS链分析

简单介绍下urldns链 在此之前最好有如下知识&#xff0c;请自行bing or google学习。 什么是序列化 反序列化 &#xff1f;特点&#xff01; java对象反射调用&#xff1f; hashmap在java中是一种怎样的数据类型&#xff1f; dns解析记录有那…

canvas绘制网格线示例

查看专栏目录 canvas示例教程100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

ArkTS - @Builder自定义构建函数

这个Builder作用就是可以把组件样式抽离出来&#xff0c;写成公共组件&#xff0c;下边记录下全局自定义构建函数用法及注意的地方。 官方文档&#xff1a;开发者可以将重复使用的UI元素抽象成一个方法&#xff0c;在build方法里调用。 一、用法 下边代码&#xff0c;我在Co…

LangChain(0.0.340)官方文档十一:Agents之Agent Types

LangChain官网、LangChain官方文档 、langchain Github、langchain API文档、llm-universe《Agent Types》、《Examples using AgentType》 文章目录 一、快速入门1.1 概念1.2 基本示例1.2.1 配置LangSmith1.2.2 使用LCEL语法创建Agents1.2.3 使用自定义runtime执行1.2.4 使用A…

uniapp中用户登录数据的存储方法探究

Hello大家好&#xff01;我是咕噜铁蛋&#xff01;作为一个博主&#xff0c;我们经常需要在应用程序中实现用户登录功能&#xff0c;并且需要将用户的登录数据进行存储&#xff0c;以便在多次使用应用程序时能够方便地获取用户信息。铁蛋通过科技手段帮大家收集整理了些知识&am…

八大算法排序@选择排序

目录 选择排序概念算法思想示例步骤1步骤2步骤...n最后一步 代码实现时间复杂度空间复杂度特性总结 选择排序 概念 选择排序&#xff08;Selection Sort&#xff09;是一种简单直观的排序算法。基本思想是在未排序的序列中找到最小&#xff08;或最大&#xff09;元素&#xf…

BIO和NIO编程(待完善)

目录 IO模型 BIO NIO 常见问题 IO模型 Java共支持3种网络编程IO模式&#xff1a;BIO&#xff0c;NIO&#xff0c;AIO BIO 同步阻塞模型&#xff0c;一个客户端连接对应一个处理线程 代码示例&#xff1a; Server端&#xff1a; public class BioServer {private static …

K8S集群部署MySql

挂载MySQL数据卷 在k8s集群中挂载MySQL数据卷 需要安装一个NFS。 在主节点安装NFS yum install -y nfs-utils rpcbind 在主节点创建目录 mkdir -p /nfs chmod 777 /nfs 更改归属组与用户 chown -R nfsnobody:nfsnobody /nfs 配置共享目录 echo "/nfs *(insecure,rw,s…

工业相机如何实现实时和本地Raw格式图像和Bitmap格式图像的保存和相互转换(C#代码,UI界面版)

工业相机如何实现实时和本地Raw图像和Bitmap图像的保存和相互转换&#xff08;C#代码&#xff0c;UI界面版&#xff09; 工业相机图像格式工业相机实现Raw图像和Bitmap图像的保存和转换的技术背景在相机SDK中获取图像转换图像的代码分析工业相机回调函数里保存Bitmap图像数据工…

【Spring】spring的容器创建

目录 控制反转IOC 依赖注入DI 创建spring的容器方式&#xff1a; 思考&#xff1a; spring整合Junit4 控制反转IOC 把对象的创建和对象之间的调用过程&#xff0c;交给Spring管理&#xff0c;IOC是容器&#xff0c;是思想。&#xff01;&#xff01;&#xff01; 依赖注入…

Redis源码——压缩列表

压缩列表ziplist本质上就是一个字节数组&#xff0c;是Redis为了节约内存而设计的一种线性数据结构&#xff0c;可以包含多个元素&#xff0c;每个元素可以是一个字节数组或一个整数。Redis的有序集合、散列和列表都直接或者间接使用了压缩列表。当有序集合或散列表的元素个数比…

打破无声世界:让您的网站会说话

导语&#xff1a;在当今的互联网世界&#xff0c;技术创新日新月异&#xff0c;为广大开发者提供了无数便捷的工具。本文将为您介绍前端文本语音API&#xff0c;这一神奇的技术能够实现文字到语音的转换&#xff0c;为您的项目增添更多可能性。同时&#xff0c;我们还将为您提供…

AI-数学-高中-1.集合(集合特性、常见数集和集合表示方法)

1.集合的三大特性 示例&#xff1a; 2.常见数集&#xff1a; 自然数就是没有负数的整数&#xff0c;即0和正整数。&#xff08;如0&#xff0c;1&#xff0c;2……&#xff0c;0既不是正整数&#xff0c;也不是 负整数 0是整数&#xff09; 整数就是没有小数位 &#xff0c;即…