gpt4 book ai didi

java - 如何在 Java 中针对较低的语言级别

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:23:08 26 4
gpt4 key购买 nike

我维护一个 Java tutorial application用 Java 编写,演示了 Java 6、7 和 8 的功能。每个教程屏幕都根据需要由 Class.forName 动态加载。 Java 7 类需要使用 Java 7 构造,而 Java 8 类需要使用 Lambdas 和 Date/Time API。

我希望这三种语言级别的用户都可以访问它,只是如果他们使用 Java 6,我们不会加载 Java 7 或 8 类,如果使用 Java 7,我们不会加载 Java 8 节课。

我们将动态确定运行时级别并忽略更高级别,仅通过 Class.forName() 加载相关类。显然,使用 Java 6 或 7 的用户将无法执行带有魔数(Magic Number) 8 的代码。因此我想在构建中以较早的 Java 版本为目标。

换句话说,我想将源设置为 1.8,将目标设置为 1.6

但是 Maven(和 Javac)阻止我指定低于源的目标。

还有其他办法吗?

我过去曾使用适用于 Android 的 JavaFX 代码完成过此操作,在那里我能够使用 Lambdas 构建 JavaFX 8 代码,然后将其部署到当前的 Android 版本。但在那种情况下,有一个特殊的 SDK 可以处理 lambda 并构建到 Java 7。

有没有办法用标准的 Java 8 做到这一点?

最佳答案

您唯一的选择是 -source 1.1 -target 1.0 在所有其他情况下,它们必须相同

您需要为每个版本构建一个 jar,然后将它们组合在一起。

关于java - 如何在 Java 中针对较低的语言级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26147712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com