什么时候使用新的Java特性才是足够快?

4
我正在开发一个应用程序,打算公开发布或至少与一组人分享。作为开发人员,我面临的问题是兼容性。在我的机器上,我正在使用新的Java 8,但我害怕使用其新功能,实际上,我甚至害怕使用Java 7中的新功能,比如try-with-resources,因为我担心用户没有最新的Java版本,因此将无法使用我的应用程序。例如,我的学校的计算机仍在使用Java 6。
首先,我的想法是否正确?或者说,使用较新的JDK编译的代码可以在具有较旧的JRE的计算机上运行吗?如果我是正确的,那么是否有已经确定的“规则”或标准来确保兼容性?例如,“确保您的代码与两个版本之前的JRE兼容!”还是完全取决于开发人员判断何时应该为发布的工作使用新功能?强调一下,我只是在谈论运行程序。用户永远不需要编译它。
我知道这有点开放式的问题,但这是我能想到的最好的地方来询问。谢谢。

鉴于JRE每个版本都包含安全更新,因此使用最新的JRE符合用户利益,所以从我的观点来看,我建议使用当前可用的JRE! - ScoPi
2
Oracle维护着一个“支持路线图”,让开发人员了解他们将停止更新Java的每个版本的时间。例如,他们在2009年10月停止更新Java 5,并且在2013年2月停止更新Java 6。您可以使用这些信息来决定是否有意义继续支持Java 6。 - Brigham
1
这完全取决于你。我会专注于Java 7的特性(我喜欢你,多重捕获)。坦白地说,如果你不打算利用JDK的功能,那么使用它就没有意义,你可能还是坚持使用你的目标版本。在大多数情况下(学校显然是你无法控制的),但如果你需要特定的功能或错误修复,那么你的用户将需要升级。当然,这完全取决于上下文。 - MadProgrammer
1个回答

2

首先,您可以通过使用-version标志进行编译时指定要支持的Java版本。这意味着,由于您正在使用Java 8,因此您始终可以强制将代码编译为较低的版本(即Java 6)。

关于旧版Java版本的问题 - 是的,您可能会遇到这个问题。许多人由于某种原因不更新Java版本。但是,这就需要您做出决定:您选择支持他们的版本还是选择支持其他版本?这一点取决于您在代码中最终想要使用什么(菱形操作符,自动关闭资源(实际上非常好用),NIO),然后您需要使用适合您和您想要支持的内容的Java版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接