OpenJDK提案将提供Java类文件API

OpenJDK提案将提供Java类文件API

提案指出,需要一个 "准确、完整、最新、高性能 "的API来解析、生成和转换Java类文件

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

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

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

API的设计目标和原则包括让所有的类文件实体,如方法和字段,由不可变的对象表示。用户驱动的导航也是一个目标。促使人们呼吁建立一个Java类文件库的因素包括:

  • JDK的整合,JDK本身在处理类文件方面就很重要。而且JDK对ASM的使用存在固有的延迟。
  • 框架和运行JDK之间的版本偏移。处理类文件的应用程序和框架通常会捆绑一个类文件库,如ASM。但是,由于新的类文件功能可能出现在JDK的任何版本中,应用程序和框架更频繁地遇到比它们所捆绑的库更新的类文件,导致运行时错误或框架试图解析未来的类文件格式。开发人员希望类文件库能够与运行JDK的时间同步。
  • 现在的JVM和类文件格式的发展速度比以前快。虽然有些演变是简单的,但其他的演变则更为复杂,例如Project Valhalla带来了新的字节码、字段描述符和验证规则。
  • 自ASM编写以来,该语言已经有了很大的改进。

计划要求在没有不可接受的性能损失的情况下,初步取代ASM作为JDK的一个运行时依赖项。另一个目标是替换编译器和JDK工具所使用的内部classreader库。最终,一系列的框架和应用程序应该能够使用这个库来替代ASM、cglib和其他字节码库。

猜你喜欢

转载自juejin.im/post/7127083816237154317