文章目录461. Java 反射 - 获取类的成员类1. 获取所有 **公共的成员类**getClasses()用法示例输出结果要点说明2. 获取 **所有成员类不限访问级别**getDeclaredClasses()用法示例输出结果要点说明3. getClasses() vs getDeclaredClasses() 对比表4. 示例定义一个外部类 内部类使用反射输出对比5. 总结461. Java 反射 - 获取类的成员类在 Java 中一个类可以定义内部类member class。这些内部类可以是publicprotected包可见package-privateprivate反射 API 提供了两种方法来获取这些内部类1. 获取所有公共的成员类getClasses()用法示例Class?cCharacter.class;for(ClassmemberClass:c.getClasses()){System.out.println(class: memberClass);}输出结果class:classjava.lang.Character$UnicodeBlockclass:classjava.lang.Character$UnicodeScriptclass:classjava.lang.Character$Subset要点说明返回当前类 所有父类的公共成员类。内部类的名字中会带$比如Character$UnicodeBlock。输出结果包括Character自己的成员类也包括继承自父类的公共成员类。2. 获取所有成员类不限访问级别getDeclaredClasses()用法示例Class?cCharacter.class;for(ClassmemberClass:c.getDeclaredClasses()){System.out.println(class: memberClass);}输出结果class:classjava.lang.Character$CharacterCacheclass:classjava.lang.Character$UnicodeBlockclass:classjava.lang.Character$UnicodeScriptclass:classjava.lang.Character$Subset要点说明返回当前类自己声明的所有成员类包括public、protected、包可见和private。不会返回父类的成员类。在Character类中除了公共类还能看到一个私有内部类CharacterCache。这个类在Character内部用来缓存常用字符对象0-127。它是 JDK 内部的优化实现。3.getClasses()vsgetDeclaredClasses()对比表方法返回范围是否包含父类成员类getClasses()所有public成员类✅ 包含父类getDeclaredClasses()当前类声明的全部成员类public protected 包可见 private❌ 不包含父类4. 示例定义一个外部类 内部类publicclassParent{publicstaticclassPublicInner{}protectedstaticclassProtectedInner{}staticclassPackageInner{}privatestaticclassPrivateInner{}}publicclassOuterextendsParent{publicstaticclassPublicInner{}protectedstaticclassProtectedInner{}staticclassPackageInner{}privatestaticclassPrivateInner{}}使用反射for(varclazz:Outer.class.getClasses()){System.out.println(getClasses(): clazz);}for(varclazz:Outer.class.getDeclaredClasses()){System.out.println(getDeclaredClasses(): clazz);}输出对比getClasses():classchapter461.Outer$PublicInnergetClasses():classchapter461.Parent$PublicInnergetDeclaredClasses():classchapter461.Outer$PrivateInnergetDeclaredClasses():classchapter461.Outer$PackageInnergetDeclaredClasses():classchapter461.Outer$ProtectedInnergetDeclaredClasses():classchapter461.Outer$PublicInner5. 总结getClasses()获取公共成员类包含父类的。getDeclaredClasses()获取当前类自己声明的所有成员类包括私有的。内部类在字节码里以$连接外部类和内部类名称。通过反射你可以看到一些在代码中无法直接访问的私有实现细节。
终极指南:如何用GTA5线上小助手快速掌握洛圣都的完全掌控权 终极指南:如何用GTA5线上小助手快速掌握洛圣都的完全掌控权 【免费下载链接】GTA5OnlineTools GTA5线上小助手 项目地址: https://gitcode.com/gh_mirrors/gt/GTA5OnlineTools 你是否厌倦了在GTA5线上模式中花费数小时跑图、刷任务、攒钱购买心仪载具&#x…
WarcraftHelper:魔兽争霸III完整优化解决方案 WarcraftHelper:魔兽争霸III完整优化解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为《魔兽争霸III》在现代电脑上的各种兼…
PCL 点云可视化进阶:CloudViewer 与 PCLVisualizer 的 3 种交互式应用场景对比 PCL 点云可视化进阶:CloudViewer 与 PCLVisualizer 的 3 种交互式应用场景对比1. 可视化工具概述与核心差异在三维点云处理领域,PCL(Point Cloud Library)提供了两种核心可视化工具:CloudViewer 和 PCLVisualizer。这两…
Spark 3.5 + Kafka 偏移量管理:MySQL 存储实战与 3 种方案对比 Spark 3.5 Kafka 偏移量管理:MySQL 存储实战与 3 种方案对比在实时数据处理领域,确保消息不丢失、不重复消费是每个数据工程师必须面对的挑战。当Spark Streaming与Kafka这对黄金组合相遇时,偏移量管理便成为实现Exactly-Once或At-Least-Onc…
A/B测试ChatGPT文案必踩的7个统计陷阱:p值失效、多重检验膨胀与序列依赖性全解析 更多请点击: https://kaifayun.com 第一章:A/B测试ChatGPT文案的统计本质与认知重构 A/B测试并非简单的“换两版文案看哪个点击高”,其底层是假设检验驱动的决策科学。当我们将ChatGPT生成的文案(变体B)与人工撰写文案…
ESXi 8.0 双软路由部署:iKuai 主路由 + OpenWrt 旁路由 3 步网络拓扑配置 ESXi 8.0 双软路由架构实战:iKuai主路由与OpenWrt旁路由的高效协同方案 1. 双软路由架构设计原理与优势 在虚拟化环境中部署双软路由系统,本质上是通过功能解耦实现网络性能与扩展性的平衡。iKuai主路由负责基础网络服务(如PPPoE拨号、DHCP分…
Matlab点云轻量化工具:基于无核漂移聚类与PCA的自动精简方案,含18个PLY模型及可视化结果 本文还有配套的精品资源,点击获取 简介:一套即装即用的Matlab点云精简工具,主打无核漂移聚类(Kernel-Free Mean Shift)和PCA降维双策略,在大幅减少点数的同时稳定保留物体表面几何特征与细节结构。内置1…
终极开源H5编辑器h5maker:3步创建专业移动端页面的完整指南 终极开源H5编辑器h5maker:3步创建专业移动端页面的完整指南 【免费下载链接】h5maker h5编辑器类似maka、易企秀 账号/密码:admin 项目地址: https://gitcode.com/gh_mirrors/h5/h5maker 在当今移动优先的数字时代,h5maker作为一款完全…
人形机器人工程攻坚期:关节模组、运动规划与场景泛化的技术深水区 1. 标题背后的行业信号:为什么“国内第一”和“小寡头”这两个词同时出现,反而暴露了人形机器人产业的真实阶段? 看到“国内第一,人形机器人小寡头,勇攀高峰!”这个标题,我第一反应不是振奋&…
PlantUML 实战:5分钟将 UML 2.5 序列图转换为可执行代码草图 PlantUML 实战:5分钟将 UML 2.5 序列图转换为可执行代码草图 在软件开发过程中,清晰的系统设计往往比编码本身更为关键。传统拖拽式UML工具虽然直观,却常常成为效率杀手——频繁的鼠标操作打断设计思路,版本控制困难,…
【RT-DETR涨点改进】29 动态Batch推理:让RT-DETR在低延迟下吃满GPU算力 29 动态Batch推理:让RT-DETR在低延迟下吃满GPU算力 开篇故事 上个月帮一家安防厂商做项目优化,他们用RT-DETR做实时人流统计,部署在NVIDIA A10上。客户反馈说:“GPU利用率才30%,但延迟已经飙到40ms了,加人流量就丢帧。” 我远程一看,好家伙——生产环境里每个请求单独…
Postman 环境变量实战:3种动态设置方法与CI/CD集成避坑指南 Postman 环境变量高阶实战:动态管理与 CI/CD 深度集成在接口自动化测试领域,环境变量的灵活运用往往成为区分初级与高级测试工程师的关键能力。本文将深入探讨 Postman 环境变量的三种动态设置模式,并分享 Newman 在 CI/CD 流水线中的实战避坑…
PlantUML 实战:5分钟将 UML 2.5 序列图转换为可执行代码草图 PlantUML 实战:5分钟将 UML 2.5 序列图转换为可执行代码草图 在软件开发过程中,清晰的系统设计往往比编码本身更为关键。传统拖拽式UML工具虽然直观,却常常成为效率杀手——频繁的鼠标操作打断设计思路,版本控制困难,…
【RT-DETR涨点改进】29 动态Batch推理:让RT-DETR在低延迟下吃满GPU算力 29 动态Batch推理:让RT-DETR在低延迟下吃满GPU算力 开篇故事 上个月帮一家安防厂商做项目优化,他们用RT-DETR做实时人流统计,部署在NVIDIA A10上。客户反馈说:“GPU利用率才30%,但延迟已经飙到40ms了,加人流量就丢帧。” 我远程一看,好家伙——生产环境里每个请求单独…
Postman 环境变量实战:3种动态设置方法与CI/CD集成避坑指南 Postman 环境变量高阶实战:动态管理与 CI/CD 深度集成在接口自动化测试领域,环境变量的灵活运用往往成为区分初级与高级测试工程师的关键能力。本文将深入探讨 Postman 环境变量的三种动态设置模式,并分享 Newman 在 CI/CD 流水线中的实战避坑…
[C++]内存管理:串顺序存储的内存回收 在串(字符串)的顺序存储中,内存回收的方式取决于字符串的存储方式以及所使用的编程语言和相关库。以下以 C 为例进行说明,因为 C 对内存管理有较为直接的控制。 1. 基于 char 数组的串顺序存储 如果使用普通的 char 数组来存储字…
移动端游戏功耗测试实战:电流、功率、亮度和场景对比 移动端游戏功耗测试:先控制变量,再比较优化是否真的省电 摘要:功耗测试最容易犯的错误,是拿两次不同温度、不同亮度、不同场景的平均功率直接比较。本文给出一套可复现的游戏功耗测试方法,覆盖引擎特性验证、版本回归和黑盒体验测试,并说明如何把功耗与帧率、温控、CPU/G…
足球口袋教练 HarmonyOS 离线应用实战(03/20):ArkUI 首页仪表盘搭建 本文是“足球口袋教练 HarmonyOS 离线应用实战”系列第 3 篇。示例项目是一个 HarmonyOS / ArkTS / ArkUI 编写的离线足球训练助手,围绕真实页面、真实截图和可复现操作展开。 本篇要解决的问题 训练 App 的首页不能只展示欢迎语,它要解决“我现在该点哪…