Java - 编写旧版本忽略的代码

Java - Write code that older version ignore

我尝试编写与旧版本 java 兼容的代码,因此它可以在任何地方运行。

另一方面,新版本中有非常强大的工具 - java8,我想使用它们。

所以我不得不在兼容性和最丰富的代码之间做出选择。

而且我想知道是否有机会在 java 8 中编写一些方法,并以某种方式防止旧版本的编译器忽略这些方法,所以我的 class 是兼容的 "partially" 与旧版本。

谢谢。

你可以写两个 类 并使用像 ant、maven 或 gradle 这样的工具来选择使用哪个文件来编译具体的 Java 版本。

即使您使用 jdk 1.8,您也可以将 java 编译器设置为针对较旧的 jdk(即 jdk 1.5)进行编译。见 javac source and target options

我认为简短而简单的答案是否定的。 请参阅此线程:Can Java 8 code be compiled to run on Java 7 jvm?

您可以使用 java 反射 api 来检查运行代码的 jvm 中是否存在方法。这允许您即使在方法或 class 在 jvm 中不可用时也能使您的代码故障安全。但是,这样做非常麻烦,我很确定这不是您要找的。