您是否想在使用Java 8的同时利用最新的Java语法和功能? 名为Jabel的工具启用了此功能,因为正如其GitHub页面所述,“生命太短,无法等待用户升级Java。”
Jabel是一种“注释处理器”,用于处理Java编译器类,并将某些Java 9和更高版本的语言功能视为Java 8支持的功能。结果是有效的Java 8字节码,用于开关表达式, var
声明和其他不支持的功能。 Java 8基本上,Jabel通过删除将其报告为对Java 8目标无效的检查,使编译器认为某些功能是为Java 8开发的。
Jabel目前处于概念验证阶段,开发人员Sergei Egorov甚至将其称为“黑客”。 Jabel页面强调,大多数开源库仍在使用Java 8作为目标。 但是,由于Java 8之后引入的大多数新语言功能都不需要更改字节码,因此即使从Java 12编译源代码, javac
编译器也可以发出Java 8字节码。
Jabel还允许开发人员在GraalVM虚拟机中使用Java 13语法 。 Java 13将于9月17日正式发布。 Egorov说,Jabel与Project Lombok相似,后者是旨在减少样板代码的Java库,但不包含任何业务逻辑。 Egorov在解释他开发Jabel的动机时说,其他语言也采用了源转换管道,尤其是JavaScript,这激发了他在Java中尝试相同的方法。 Java 8于2014年3月推出 。 Java的当前版本是版本12 。
可以在GitHub上找到有关使用Jabel的说明。 JitPack软件包repo分发了Jabel插件 。
From: https://www.infoworld.com/article/3436502/jabel-brings-post-java-8-features-to-java-8-users.html