反射相关知识点

news2024/11/19 9:31:25

这里写目录标题

  • 反射
    • 概述
    • 获取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.coloradmin.cn/o/603911.html

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

相关文章

chatgpt赋能python:Python加速读取CSV文件的方法

Python加速读取CSV文件的方法 介绍 CSV文件是一种常见的数据格式,因为其简单和易于理解,被广泛应用于数据处理和数据分析。然而,在处理大型CSV文件时,读取速度会成为问题。Python作为一种高级编程语言,具有易学易用的…

AI+是企业管理软件的下一站和终点站

作为GPT综合症的表现,准备陆续写一点关于AI的文章。就从这一篇开始吧。 这篇文章原来是在2019年1月份我发在新浪微博和LinkedIn上的。刚搜了一下,全然不见了踪影。原因大家也都知道。但是,我想那个思想的小火花一定还在,在某处酝…

Jenkins概念及安装配置教程(三)

如何配置Jenkins? Jenkins 中的用户管理 要在 Jenkins 中管理用户,您应该导航到管理 Jenkins 🡪 配置全局安全。理想的选择是让 Jenkins 拥有自己的用户数据库。您可以创建一个只有读取权限的匿名用户。为您打算在下一步中添加的用户创建条…

【ARMv8 SIMD和浮点指令编程】NEON 加法指令——加法都能玩出花

向量加法包括常见的普通加指令,还包括长加、宽加、半加、饱和加、按对加、按对加并累加、选择高半部分结果加、全部元素加等。如果你和我一开始以为的只有一种普通加,那就太小看设计者了!同时这么多加法指令的确会提升我们设计程序的效率&…

numpy包中的编码函数和解码函数numpy.char.encode() numpy.char.decode()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 numpy包中的编码函数和解码函数 numpy.char.encode() numpy.char.decode() [太阳]选择题 下列代码最后输出的结果是? import numpy as np x np.array([I, Love, Python]) print(…

Python jieba库

前言 Jieba库是优秀的中文分词第三方库,中文文本需要通过分词获得单个的词语。 Jieba库的分词原理:利用一个中文词库,确定汉字之间的关联概率,汉字间概率大的组成词组,形成分词结果。除了分词,用户还可以…

【数据库原理与应用 - 第八章】数据库的事务管理与并发控制

目录 一、事务管理 1、概念及特性 2、事务控制 (1)事务控制语句 显示事务举例 二、并发控制 1、问题引入 2、并发执行带来的问题 (1)丢失修改 (2)不可重复读 (3)读"…

[自学记录02|百人计划]纹理压缩

一、什么是纹理压缩 纹理压缩是为了解决内存、带宽问题,专为在计算机图形渲染系统中存储纹理而使用的图像压缩技术。 1.图片格式和纹理格式的区别 (1)图片格式 图片格式是图片文件的存储格式,通常在磁盘、内存中储存和传输文件时使用;例如…

单片机GD32F303RCT6 (Macos环境)开发 (三十三)—— 光照传感器 (BH1750)

GD32 光照传感器 BH1750的使用 1、GPIO模拟i2c配置 使用管脚为SCL PB10 SDA PB11,移植代码时可换自己的管脚。软件模拟i2c在十九章中讲过,与其不同的地方是,这里的us延时函数,换成了定时器3做us级的延时。 tim3的配置&#xf…

linux 找回root密码(CentOS7.6)

linux 找回root密码(CentOS7.6) 首先,启动系统,进入开机界面,在界面中按“e”进入编辑界面。如图 2. 进入编辑界面,使用键盘上的上下键把光标往下移动,找到以““Linux16”开头内容所在的行数”,在行的最后…

java-字符流和字节流(二)

java-字符流和字节流(二) 一、字节缓冲流 1.1字节缓冲流构造方法 字节缓冲流介绍 BufferOutputStream:该类实现缓冲输出流。 通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用 BufferedIn…

chatgpt赋能python:Python动图如何优化SEO?

Python动图如何优化SEO? Python是一种高级编程语言,广泛应用于数据分析、人工智能和网站开发等领域。Python还支持创建动态图像,这些动态图像通常用于数据可视化、演示和教育目的。在本文中,我们将探讨如何使用Python创建动态图像…

chatgpt赋能python:Python加f之SEO的重要性

Python加f之SEO的重要性 随着互联网的不断发展和普及,越来越多的企业和个人纷纷进入到了网站建设,网络营销的大军之中。而SEO作为重要的一环,在各个领域内也变得愈加重要。而Python中的f字符串是近些年来引起广泛关注的一种新的字符串格式化…

chatgpt赋能python:Python动态内存分配:如何优化你的代码

Python动态内存分配:如何优化你的代码 在编写Python代码时,你可能已经注意到内存使用方面的一些问题。Python动态内存分配是一个重要的话题,它涉及到Python程序如何在运行时使用内存。本文将向您介绍Python动态内存分配的基本概念和如何优化…

chatgpt赋能python:Python动态代码在SEO中的重要性

Python动态代码在SEO中的重要性 Python是一种非常流行的编程语言,用于开发Web应用程序、数据分析、人工智能和机器学习。Python的动态代码能够动态生成HTML、CSS和JavaScript来创建动态网页。这种能力使Python在SEO中非常有用,因为它可以帮助网站排名更…

chatgpt赋能python:如何使用Python制作动画?

如何使用Python制作动画? Python是一种高级编程语言,被广泛应用于各种领域,包括动画制作。Python的简洁性和强大的功能使得它成为一个很好的选择来制作动画。在这篇文章中,我将向您介绍使用Python如何制作动画。 第一步&#xf…

Vue3 相关Composition Api 2

一,其他Composition Api shallowReactive 与 shallowRef shallowReactive:只处理对象最外层属性的响应式(浅响应式)。 shallowRef:只处理基本数据类型的响应式,不进行对象的响应式处理。 什么时候使用? 如果有一个对…

Hive

Hive 概览 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。 本质是将SQL转换为MapReduce程序。 主要用途:用来做离线数据分析,比直接用MapReduce开发效率更高。 架构 数…

chatgpt赋能python:用Python制作动画,你不可错过的工具

用Python制作动画,你不可错过的工具 Python是一种高级编程语言,最初被设计用于编写自动化脚本和简化复杂任务。然而,如今它越来越多地被用于创意和艺术性的项目,甚至是动画制作。 Python在动画制作中的优势一直受到赞誉。它是一…

辅助驾驶功能开发-功能算法篇(2)-ACC-状态机跳转设计

1、ACC状态介绍 ALOD_MODE (ACC状态) 状态说明OFF ACC关闭状态,此时ACC图标不显示,且其他相关信号都发默认值。此状态下车辆完全由驾驶员控制。 PassiveACC已由驾驶员开启,但有抑制条件(如安全带、车门)满足&#xff0…