java - 是否可以编译较新的 Java 版本(9、10、11)以在较旧的平台(例如 Java 8)上运行?
问题描述
是否可以使用较新的 Java(例如 9、10、11 等)版本进行开发,并将该 Java 编译为某些较旧的版本 - 例如 Java 8?
我们想使用较新 Java 版本的新功能,但我们的代码需要在 Java 8 平台上运行。
如果重要的话:我们正在使用 Maven 构建。
以 Javascript 方式表达它:
Java 是否存在 Babel Polyfill 等价物?
解决方案
不必要。如果您的代码使用了以前版本中未定义的包/语法结构,则程序将无法运行/编译。
这样想吧。在 Java 8 之前,没有 lambda 表达式。因此,如果您在 Java 8+ 中创建一个 lambda 表达式,然后尝试在 Java 7 中编译它,编译器会是这样的:什么是 lambda 表达式?
简而言之,没有。但是,您可以另辟蹊径。使用较高版本编译以较低版本编写的代码......在大多数情况下。
推荐阅读
- java - 我在输出窗口中变得如此冗长。Apache Netbeans 12
- c# - 解析日期时间字符串会产生意外结果
- matlab - 牛顿插值:从划分的差异表中找到多项式的值
- sorting - 如何在pyspark中对列进行排序后从开始获取索引值?
- python - 嵌套字典Python中不存在键
- git - 将 gradle 提交到 VCS 所需的最少文件是多少?
- django - 如果Django中存在查询字符串参数,如何构造一个url来过滤
- r - 具有值的过滤因子
- java - 迭代从休眠引用游标返回的对象列表
- typescript - Extend the possible types of values of dictionary in TypeScript