使用java反射机制,获取已存在类的信息
使用java反射机制获取已存在类的信息反射就是把java类中的各种成分映射成一个个的Java对象例如一个类有成员变量、方法、构造方法、包等等信息利用反射技术可以对一个类进行解剖把个个组成部分映射成一个个对象。其实一个类中这些成员方法、构造方法、在加入类中都有一个类来描述如图是类的正常加载过程反射的原理在与class对象。熟悉一下加载的时候Class对象的由来是将class文件读入内存并为之创建一个Class对象。代码示例1.首先构建Students类package com.whtcc.person; public class Students { private String stu_name; private int stu_age; public Students() { super(); // TODO Auto-generated constructor stub } public Students(String stu_name, int stu_age) { super(); this.stu_name stu_name; this.stu_age stu_age; } public String getStu_name() { return stu_name; } public void setStu_name(String stu_name) { this.stu_name stu_name; } public int getStu_age() { return stu_age; } public void setStu_age(int stu_age) { this.stu_age stu_age; } public void study(int a,int b) { System.out.println(学生正在学习。。。计算ab(ab)); } }2.创建测试类package com.whtcc.test; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Arrays; import com.whtcc.person.Students; public class Main { public static void main(String[] args) { try { //通过反射获得Students对象 Class? stuClassClass.forName(com.whtcc.person.Students); Students stu2(Students) stuClass.newInstance(); //测试是否能调用Students类的study方法 stu2.study(3,2); //获取name_field属性对象 Field name_fieldstuClass.getDeclaredField(stu_name); //设置name_field属性对象取消权限检查 name_field.setAccessible(true); //创建Students对象stu1 Students stu1new Students(Mary,15); //打印stu1的name属性值 String namestr(String)name_field.get(stu1); System.out.println(stu1的namenamestr.toString()); //修改stu1的name属性值为jike并输出至控制台 name_field.set(stu1, jike); String newnamestr(String)name_field.get(stu1); System.out.println(stu1的新namenewnamestr.toString()); //获取age_field属性对象及相关操作 Field age_fieldstuClass.getDeclaredField(stu_age); age_field.setAccessible(true); System.out.println(stu1对象的age值age_field.getInt(stu1)); //获取age_field属性修饰符类型 int modifierage_field.getModifiers(); System.out.println(stu1对象的age值修饰符Modifier.toString(modifier)); //获取age_field属性名称 System.out.println(stu1对象的age值属性名称age_field.getName()); System.out.println(-----------------------------------------------------------); /* * *通过反射获取并调用对象的方法以study方法为例 */ Method methodstuClass.getMethod(study,int.class,int.class); //获取study方法的修饰符 System.out.println(study方法的权限修饰符是Modifier.toString(method.getModifiers())); //获取study方法的返回值类型 System.out.println(study方法的返回值类型是method.getReturnType().getName()); //获取study方法的参数列表 Class?[] parameterTypesmethod.getParameterTypes(); System.out.println(参数列表Arrays.toString(parameterTypes)); //调用study方法 method.invoke(stu1, 6,5); //更改stu1对象的属性 Method setnameMethod stuClass.getDeclaredMethod(setStu_name, String.class);//第一个参数是方法名称第二个参数是方法参数类型的类类型 setnameMethod.invoke(stu1, tony); System.out.println(stu1的新名字是stu1.getStu_name()); /* * 拓展使用反射调用ArrayList类的方法 */ Class? claClass.forName(java.util.ArrayList); Method method2cla.getMethod(add, Object.class); ArrayListString alt(ArrayListString) cla.newInstance(); method2.invoke(alt, we are family); System.out.println(alt); //通过反射获取构造器对象 Constructor? constructorsstuClass.getConstructor(); Constructor? constructors1stuClass.getConstructor(String.class,int.class); Students s1(Students) constructors.newInstance(); Students s2(Students) constructors1.newInstance(fa,19); } catch (Exception e) { e.printStackTrace(); } } }

相关新闻

如何搭建医院陪诊陪护管理系统?本文分析陪诊系统开发全流程与核心模块详解

如何搭建医院陪诊陪护管理系统?本文分析陪诊系统开发全流程与核心模块详解

博主介绍: 所有项目都配有从入门到精通的安装教程,可二开,提供核心代码讲解,项目指导。 项目配有对应开发文档、解析等 项目都录了发布和功能操作演示视频;项目的界面和功能都可以定制,包安装运行&#xff…

2026/7/28 19:46:32阅读更多 →
如何搭建充电桩管理系统?开发全流程与核心模块详解

如何搭建充电桩管理系统?开发全流程与核心模块详解

博主介绍: 所有项目都配有从入门到精通的安装教程,可二开,提供核心代码讲解,项目指导。 项目配有对应开发文档、解析等 项目都录了发布和功能操作演示视频;项目的界面和功能都可以定制,包安装运行&#xff…

2026/7/28 19:46:32阅读更多 →
Bayes-SVM分类算法:原理、实现与医疗诊断应用

Bayes-SVM分类算法:原理、实现与医疗诊断应用

1. 项目概述:Bayes-SVM分类算法解析在机器学习领域,分类算法的优化一直是个热门话题。最近我在一个医疗诊断项目中尝试了Bayes-SVM(贝叶斯优化支持向量机)方法,效果出乎意料地好。这种将贝叶斯优化与支持向量机结合的方…

2026/7/28 19:46:32阅读更多 →
YOLOv11改进|注意力机制|轻量化多尺度线性注意力机制(LiteMLA)

YOLOv11改进|注意力机制|轻量化多尺度线性注意力机制(LiteMLA)

1.多尺度线性注意力机制 题目:EfficientViT: Multi-Scale Linear Attention for High-Resolution Dense Prediction GitHub地址:https://github.com/mit-han-lab/efficientvit 创新部分: 多尺度线性注意力机制(Multi-Scale Linear Attention): 论文提出了一种高效的多尺…

2026/7/28 22:17:12阅读更多 →
电厂运维数据怎么自动采集?解析企业级智能自动化实现路径与方案测评

电厂运维数据怎么自动采集?解析企业级智能自动化实现路径与方案测评

在工业与能源领域,电厂及相关设施的运维数据自动采集已从传统的“人工抄表”模式,全面转向基于数字化、网络化与智能化的全流程自动抓取与云端归档。这一转型不仅是技术迭代的体现,更是提升能源管控效率、确保生产安全及合规性的必然要求。根…

2026/7/28 22:17:12阅读更多 →
VCG拍卖机制:原理、实现与应用场景解析

VCG拍卖机制:原理、实现与应用场景解析

1. VCG机制核心概念解析VCG(Vickrey-Clarke-Groves)机制作为拍卖理论与算法博弈论中的经典模型,本质上是一种保证激励相容的分配与定价规则。我在研究广告竞价系统时首次接触到这个精妙的机制设计,其核心思想是通过巧妙的支付规则…

2026/7/28 22:17:12阅读更多 →
4 个维修隐坑|广州笔记本 WiFi 频繁断连重启自查,别盲目花钱换网卡

4 个维修隐坑|广州笔记本 WiFi 频繁断连重启自查,别盲目花钱换网卡

日常办公常见的 WiFi 异常困扰💻很多人办公时都遇到过这种糟心情况,笔记本连着 WiFi 好好的,刷网页、办公突然断网,图标转圈几秒后自动重连。看似小问题,频繁发作会直接打断办公进度、导致文件传输中断、线上会议意外掉…

2026/7/28 22:17:12阅读更多 →
LabVIEW与Arduino实现多路DS18B20温度采集:单总线组网与高效读取策略

LabVIEW与Arduino实现多路DS18B20温度采集:单总线组网与高效读取策略

1. 项目缘起与核心挑战上次我们聊了用LabVIEW和Arduino搞定单个DS18B20温度采集,算是把基础流程跑通了。但很多朋友在实际项目中,比如环境多点监测、设备温度场分析,一个传感器根本不够用。这时候,多路DS18B20的组网采集就成了刚需…

2026/7/28 22:17:12阅读更多 →
推荐几个适合做服装的商城小程序平台?新手服装店从低门槛上线角度怎么选

推荐几个适合做服装的商城小程序平台?新手服装店从低门槛上线角度怎么选

今天给大家带来推荐几个适合做服装的商城小程序平台?新手服装店从低门槛上线角度怎么选。国家统计局数据显示,2025年限额以上单位服装、鞋帽、针纺织品类零售额为15215亿元,比上年增长3.2%;同时,全国实物商品网上零售额…

2026/7/28 22:15:11阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/28 20:22:24阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →