是否可以使用较新的Java(例如9,10,11等)版本进行开发,并将Java编译为某些旧版本 - 例如Java 8?
我们希望使用较新Java版本的新功能,但我们的代码需要在Java 8平台上运行。
如果重要:我们正在与Maven一起建设。
用Javascript方式表达它:
是否存在Java的Babel Polyfill等价?
不 - 您不能在旧JVM上使用新功能; bytecode is incompatible。
您可以绝对使用较新版本的Java编译为较低版本,并对模块有一些警告。
如果您需要更新的Java版本的新功能,那么是时候迁移到新版本了;除此之外,在您需要Oracle支持之前,您将处于良好状态。
不必要。如果您的代码使用以前版本中未定义的包/语法结构,则程序将无法运行/编译。
这样想吧。在Java 8之前,没有lambda表达式。因此,如果您在Java 8+中创建一个lambda表达式然后尝试在java 7中编译它,编译器就会像:什么是lambda表达式?
总之没有。但是,你可以走另一条路。在大多数情况下,使用更高版本编译以较低版本编写的代码。