OpenJDK 提案将提供 Java 类文件 API

根据 Java 社区正在进行的一项提议,Java 将获得一个用于处理 Java 类文件的 API。

类文件 API 提案草案要求提供用于解析、生成和转换 Java 类文件的 API。 这个类文件库最初将用作 ASM Java 字节码操作框架的内部替代品。 最终,ASM 将从 JDK 中完全删除。

类文件 API 提案指出,类文件生成、解析和检测在 Java 生态系统中无处不在,许多工具和库都需要处理类文件。 框架通常执行即时字节码检测。 提案指出,JDK 应该为读取、写入和转换 Java 类文件提供准确、完整、最新的高性能 API。

API 的设计目标和原则包括让所有类文件实体(例如方法和字段)由不可变对象表示。 用户驱动的导航也是一个目标。 激发对 Java 类文件库的调用的因素包括:

    JDK 合并,JDK 本身在处理类文件方面意义重大。 并且 JDK 使用 ASM 存在固有的延迟。 框架和运行 JDK 之间的版本偏差。 处理类文件的应用程序和框架通常捆绑一个类文件库,例如 ASM。 但是因为新的类文件功能可以出现在 JDK 的任何版本中,应用程序和框架更频繁地遇到比它们捆绑的库更新的类文件,导致运行时错误或框架试图从未来。 开发人员需要一个在运行 JDK 时保持最新的类文件库。 JVM 和类文件格式现在比以前发展得更快。 虽然有些演化很简单,但其他演化则更为复杂,例如 Valhalla 项目带来了新的字节码、字段描述符和验证规则。 自编写 ASM 以来,该语言已经有了很大的改进。

计划要求最初将 ASM 替换为 JDK 的运行时依赖项,而不会造成不可接受的性能损失。 另一个目标是替换编译器和 JDK 工具使用的内部类读取器库。 最终,一系列框架和应用程序应该能够使用该库作为 ASM、cglib 和其他字节码库的替代品。

阅读更多

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注