Java反射(一)--- 类的实例化
文章目录
- 一、整理框架
- 二、Java反射机制提供的功能
- 三、反射相关的主要API
- 四、相关代码:
- 1.Person类
- 2.反射之前,对于Person类的操作
- 3.反射之后,对于Person类的操作
提示:以下是本篇文章正文内容,下面案例可供参考
一、整理框架
二、Java反射机制提供的功能
1.在运行时判断任意一个对象所属的类
2.在运行时构造任意一个类的对象
3.在运行时判断任意一个类所具有的成员变量和方法
4.在运行时获取泛型信息
5.在运行时调用任意一个对象的成员变量和方法
6.在运行时处理注解
7.生成动态代理
三、反射相关的主要API
java.lang.Class:代表一个类
java.lang.reflect.Method:代表类的方法
java.lang.reflect.Field:代表类的成员变量
java.lang.reflect.Constructor:代表类的构造器
四、相关代码:
1.Person类
package com.tyust.edu;/*** @author YML TYUST-XDU 2019-2026* @create 2023-09-30 10:39*/
public class Person {private String name;public int age;public int id;public Person(String name,int age){this.name = name;this.age = age;}private Person(String name){this.name = name;}public Person(){System.out.println("Person()");}@Overridepublic String toString() {return "姓名:"+this.name + " 年龄:"+this.age;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public void show(){System.out.println("你好,我是一个人");}private String showNation(String nation){System.out.println("我的国籍是:" + nation);return nation;}private static void showDesc(){System.out.println("我是一个可爱的人~");}}
2.反射之前,对于Person类的操作
@Testpublic void test1(){//1.创建Person类的对象Person p1 = new Person("Tom",12);//2.通过对象,调用其内部的属性、方法p1.age = 10;System.out.println(p1.toString());p1.show();//在Person类外部,不可以通过Person类的对象调用其内部私有结构//比如:name\showNation()以及私有的构造器。}
3.反射之后,对于Person类的操作
@Testpublic void test2() throws Exception {Class clazz = Person.class;//1.通过反射,创建Person类的对象Constructor cons = clazz.getConstructor(String.class,int.class);Object obj = cons.newInstance("Tom",12);Person p = (Person)obj;System.out.println(p.toString());//2.通过反射,调用对象指定的属性、方法//调用属性Field age = clazz.getDeclaredField("age");age.set(p,10);System.out.println(p.toString());//调用方法Method show = clazz.getDeclaredMethod("show");show.invoke(p);//通过反射,可以调用Person类的私有结构的:私有的构造器、方法、属性Constructor cons1 = clazz.getDeclaredConstructor(String.class);cons1.setAccessible(true);Person p1 = (Person)cons1.newInstance("Mary");System.out.println(p1);//调用私有的属性Field name = clazz.getDeclaredField("name");name.setAccessible(true);name.set(p1,"HanMeiMei");System.out.println(p1);//调用私有的方法Method showNation = clazz.getDeclaredMethod("showNation", String.class);showNation.setAccessible(true);String nation = (String)showNation.invoke(p1,"中国"); //相当于String nation = p1.showNation("中国")System.out.println(nation);}
相关文章:

Java反射(一)--- 类的实例化
文章目录 一、整理框架二、Java反射机制提供的功能三、反射相关的主要API四、相关代码:1.Person类2.反射之前,对于Person类的操作3.反射之后,对于Person类的操作 提示:以下是本篇文章正文内容,下面案例可供参考 一、整…...

web3.0时代分布式网络协议的异同
Web3.0时代标志着分布式网络协议的兴起,其中IPFS(InterPlanetary File System)和NDN(Named Data Networking)是备受瞩目的项目。尽管它们都属于分布式网络协议领域,但在多个方面存在显著区别。以下是IPFS和…...

【多线程案例】设计模式-单例模式
1.单例模式 什么是单例模式? 所谓单例,即单个实例。通过编码技巧约定某个类只能有唯一一个实例对象,并且提前在类里面创建好一个实例对象,把构造方法私有化,再对外提供获取这个实例对象的方法,࿰…...

MyBatis-Plus演绎:数据权限控制,优雅至极!
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇&#x…...

医学专题--多组学在药物治疗靶点筛选中的研究思路
研究背景 药物靶点(drug target):是指药物在体内的作用结合位点,包括基因位点、受体、酶、离子通路、核酸等生物大分子,靶向药物从单靶点药物到多靶点药物都在不断进行临床探索。小分子多靶点药物因其多靶向性、高效率…...
搜索与图论总结
算法博文DFSDFS(深度优先)-CSDN博客BFSBFS(宽度优先)(最短路)-CSDN博客有向图与无向图有向图与无向图(邻接表)_无向图有向图邻接表_人生导师yxc的博客-CSDN博客拓扑排序topsort(拓扑排序)-CSDN博客最短路最…...

lv8 嵌入式开发-网络编程开发 15I/O多路复用及select函数
目录 1 I/O多路复用 1.1 select函数及其他接口相关介绍 1.2 原TCP—socket示例: 1.3 实现select函数TCP—socket示例: 2 练习 1 I/O多路复用 多路复用的实现方式 1.1 select函数及其他接口相关介绍 int select(int nfds, fd_set *readfds, fd_set…...

阿里云 linux tomcat 无法访问方法
1、阿里云放行tomcat端口 例如7077端口号 2、linux 命令行防火墙 设置端口打开 以下命令查看是否开启指定端口 firewall-cmd --list-ports以下命令添加指定端口让防火墙放行 firewall-cmd --zonepublic --add-port3306/tcp --permanent以下命令重新启动防火墙 systemctl re…...

公园视频监控系统如何改造?人工智能又能提供哪些帮助?
近日合肥市骆岗公园宣布正式开园,作为目前世界最大的城市公园,占地12.7万平方公里,如此壮观宏伟的建设,也吸引到了不少市民进行参观打卡。不管大型小型,城市里的公园都是随处可见的,那么,公园安…...
面试算法19:最多删除一个字符得到回文
题目 给定一个字符串,请判断如果最多从字符串中删除一个字符能不能得到一个回文字符串。例如,如果输入字符串"abca",由于删除字符’b’或’c’就能得到一个回文字符串,因此输出为true。 分析 本题还是从字符串的两端…...
H5+Css3文本溢出添加省略号(包括插件)
一、单行 溢出隐藏 添加省略号 p{overflow: hidden;text-overflow:ellipsis;white-space: nowrap; }二、多行 溢出隐藏 省略号 p{display: -webkit-box;-webkit-box-orient: vertical;/*设置省略号在容器第四行文本后*/-webkit-line-clamp: 4; overflow: hidden; }局限性&…...

将休眠镜像文件hiberfil.sys移动到D盘,可以减少C盘好几个G的空间占用
hiberfil.sys是什么文件? 该文件是开启休眠功能后,系统自动生成的内存镜像文件,以便我们唤醒电脑之后可以快速开启程序。 1、首先打开电脑,使用“windowsR”组合键进入运行,输入“regedit”命令。 2、在注册表编辑器中…...

YTM32的模数转换器ADC外设模块详解
文章目录 简介原理与机制ADC转换器的上下电和省电模式ADC转换结果和FIFOADC转换队列的工作模式ADC转换器的触发信号ADC转换器的看门狗中断事件和DMA 应用要点(软件)总结参考文献 简介 YTM32的ADC转换器外设最多可以集成32个输入通道,最高12b…...
前端vue学习笔记——Vuex
1.概念 在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。 2.何时使用?…...

7个在Github上的flutter开源程序
阅读大量代码是提高开发技能的最佳方法之一。该开源项目是了解最佳实践、编码风格和许多其他主题的最佳场所。 软件开发最受欢迎的领域之一是跨平台移动应用程序开发。Flutter 是您可以使用的最流行的跨平台移动应用程序开发工具之一。今天,我们将了解 7 个开源 Flu…...

计算机基础
分值:3-7 1. 计算机系统概述 2. 计算机组成结构 3. 存储结构 3.1. 层次化存储结构 一般用什么调什么,局部性原理 内存和外存可以统称为虚拟存储器 我们可以操作哪些:操作外存、内存、CPU寄存器。Cache具有透明性。 3.2. Cache Cache的功…...

Oracle-ASM实例communication error问题处理
问题背景: Oracle数据库日志出现大量的WARNING: ASM communication error: op 0 state 0x0 (15055)错误 问题分析: 首先检查ASM实例的状态,尝试通过sqlplus / as sysasm连接asm实例,出现Connected to an idle instance连接asm实例失败 检查ASM实例的后台…...

gin路由相关方法
c.Request.URL.Path 拿到请求的路径 package mainimport ( "fmt" "github.com/gin-gonic/gin" "net/http")//路由重定向,请求转发,ANY ,NoRoute,路由组func main() { r : gin.Default() // -------…...
vue项目 Editor.md使用示例
简介 Editor.md 支持“标准” Markdown / CommonMark 和 Github 风格的语法,也可变身为代码编辑器; 支持实时预览、图片(跨域)上传、预格式文本/代码/表格插入、代码折叠、搜索替换、只读模式、自定义样式主题和多语言语法高亮等…...

12.3 实现模拟鼠标录制回放
本节将向读者介绍如何使用键盘鼠标操控模拟技术,键盘鼠标操控模拟技术是一种非常实用的技术,可以自动化执行一些重复性的任务,提高工作效率,在Windows系统下,通过使用各种键盘鼠标控制函数实现动态捕捉和模拟特定功能的…...

C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...

dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...