- Java 15 教程
- Java 15 - 主页
- Java 15 - 概述
- Java 15 - 环境设置
- Java 15 语言变化
- Java 15 - 密封类
- Java 15 - instanceOf 模式
- Java 15 - 文本块
- Java 15 - 记录
- Java 15 - 记录和密封类
- Java 15 JVM 变化
- Java 15 - 隐藏类
- Java 15 - 垃圾收集器
- Java 15 - 其他更改
- Java 15 - 弃用和删除
- Java 15 - 其他增强功能
- Java 15 - 弃用和删除
- Java 15 有用资源
- Java 15 - 快速指南
- Java 15 - 有用的资源
- Java 15 - 讨论
Java 15 - 隐藏类
Java 15 引入了隐藏类,这些类不能被其他类字节码直接使用。这些隐藏类旨在由在运行时生成类并通过反射使用它们的框架使用。
隐藏类被定义为基于嵌套的访问控制上下文的成员,并且可以独立于其他类来卸载它。
该提案 JEP 371 旨在通过提供标准 API 来定义不可发现且生命周期有限的隐藏类,从而改进 JVM 上的所有语言。JDK框架或外部框架可以动态生成类,这些类可以生成隐藏类。
JVM 语言严重依赖动态类生成来实现灵活性和效率。
目标
以下是此增强功能的目标列表。
框架应该能够将类定义为框架的不可发现的实现细节,这些类既不能链接到其他类,也不能使用反射来发现。
使用不可发现的类扩展访问控制嵌套。
积极卸载隐藏类,这将帮助框架根据需要定义尽可能多的隐藏类,而不会降低性能。
弃用非标准 API,misc.Unsafe::defineAnonymousClass,将在未来版本中删除。