461. Java 反射 - 获取类的成员类 文章目录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()获取当前类自己声明的所有成员类包括私有的。内部类在字节码里以$连接外部类和内部类名称。通过反射你可以看到一些在代码中无法直接访问的私有实现细节。

相关新闻

最新新闻

Midjourney做LOGO和商业设计:甲方一次过的秘诀

Midjourney做LOGO和商业设计:甲方一次过的秘诀

在AI绘画的所有应用场景中,商业设计是最考验综合能力的一块——它不仅要“好看”,更要“能用”“能落地”“能过稿”。过去几年,我见过太多设计师拿着Midjourney生成的华丽图片去提案,却被甲方一句“这不是我们品牌的感觉”打回来。 问题出在哪?不是AI不够强,而是大多数…

2026/7/12 11:53:24
Typora 1.8.10 Linux 通用二进制部署:3步解决 Kali 等发行版沙盒权限报错

Typora 1.8.10 Linux 通用二进制部署:3步解决 Kali 等发行版沙盒权限报错

Typora 1.8.10 Linux 通用二进制部署:3步解决 Kali 等发行版沙盒权限报错在 Kali Linux 这类非主流发行版上安装 Typora 时,最让人头疼的就是那个烦人的chrome-sandbox权限报错。作为一名长期在 Kali 上写技术笔记的安全研究员,我花了整整一个…

2026/7/12 11:53:24
MJ Blend与Remix模式:创意融合的高级玩法

MJ Blend与Remix模式:创意融合的高级玩法

如果你已经掌握了Midjourney的提示词编写、参数调优、构图法则和角色一致性,那么恭喜你——你已经是一名合格的AI绘画创作者了。但如果你想让自己的作品从“好看”升级到“惊艳”,从“常规”升级到“意想不到”,那就必须学会两门“绝活”:Blend(混图)和Remix(重混)。 …

2026/7/12 11:53:24
Markdown 语法实战:5 个 GitHub 热门项目 README 文件结构深度解析

Markdown 语法实战:5 个 GitHub 热门项目 README 文件结构深度解析

GitHub 顶级项目 README 设计艺术:从 React 到 Vue 的 7 个实战模板解析 在开源世界中,README.md 是项目的门面,也是开发者与用户沟通的第一桥梁。优秀的 README 不仅能清晰传达项目价值,更能有效降低用户的使用门槛。本文将通过…

2026/7/12 11:53:24
角色一致性(CR)深度实战:同一角色不同场景

角色一致性(CR)深度实战:同一角色不同场景

在AI绘画的所有痛点中,“角色变脸”一定排前三。你精心设计了一个原创角色,生成了一张满意的定妆照,然后想把它放进不同的场景里——结果AI直接给你换了个演员。发型变了,眼睛颜色变了,连衣服款式都跑偏了[reference:0]。 这不是个例。根据《2026全球生成式人工智能应用白…

2026/7/12 11:53:24
netsh wlan 命令深度解析:Windows 11/10 无线网络5大高级管理场景

netsh wlan 命令深度解析:Windows 11/10 无线网络5大高级管理场景

netsh wlan 命令深度解析:Windows 11/10 无线网络5大高级管理场景在Windows系统中,图形界面虽然友好,但对于网络工程师和技术支持人员来说,命令行工具往往能提供更高效、更精准的控制能力。netsh wlan作为Windows内置的无线网络管…

2026/7/12 11:48:24

月新闻