【发布时间】:2014-04-21 07:46:23
【问题描述】:
我是使用 NetBeans IDE 的业余 Java 程序员。我在 Java 编程中面临的一个问题是选择正确的目标 JRE 版本。我知道我的大多数朋友至少有 java 6,但很少有人有我编译的完全最新版本。我知道如何为 NetBeans 上的特定目标运行时环境进行编译;问题在于,通过使用 Java 的早期目标版本,编译器需要使用该版本编写的代码。
举一个具体的例子,我偶尔会使用 Java 8 lambda 而不是 new Runnable(){},但是编译器(或至少 NetBeans)不接受这种“现代”代码。另一个例子是使用菱形运算符,或者使用多异常 catch 语句,Java 6 都不支持这两种情况。语言在进化,编译器也在进化,但旧版本的 Java 无法处理这种变化。为了分发我的代码,我不得不使用某些人可能认为过时的代码。
我的问题是:为过时的目标版本编写 Java 以提供兼容性是否被认为是良好做法或常见做法? Java 代码是否有某种形式的“翻译器”或交叉编译器?
【问题讨论】:
-
这很常见。 “好”是非常主观的。
-
我不明白你的问题。使用旧版本 Java 的唯一原因是您有遗留问题或公司限制。作为一个业余爱好者,您没有这些限制,您使用 Netbeans 遇到的问题是您可以解决的配置问题。
-
尽可能要求用户升级到您的代码的目标版本(例如 Java 8)。如果它们不能/不会,并且您需要支持它们,您可以编译为 Java 6,或者拥有两个版本的工具,一个用于 Java 6,一个用于 Java 8。Netbeans 也支持 lambdas,因为7.4 我相信。
-
Raul Guiu,我的朋友很懒,不升级他们的java。当然,我的 Java 是最新的。我想分享我的东西,仅此而已。
标签: java netbeans backwards-compatibility