根据Java社区正在进行的一项提议,Java将获得一个用于处理Java类文件的API。
类文件Class API提案草案(https://bugs.openjdk.org/browse/JDK-8280389)要求提供用于解析、生成和转换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和其他字节码库的替代品。
除特别注明外,本站所有文章均为老K的Java博客原创,转载请注明出处来自https://javakk.com/2706.html
暂无评论