两种不同Java版本的两种实现

时间:2018-06-27 11:53:56

标签: java

我被要求制作一个Java应用程序。它旨在在Debian服务器上运行。事实是:

  • 此服务器使用具有Java 6和Java 7的Debian 7(轻巧)
  • 服务器应很快更新为具有Java 8的较新版本

代码中有很多地方使用流会更好,而不是使用旧的for循环。但是,Java <= 7不支持此功能。

所以我的问题是:有没有办法实现一个类的两种实现,一种用于Java <= 7,一种用于Java> = 8?该选择将在编译时取决于编译器(JDK 7将编译Java7版本,而JDK 8将编译Java8版本)。

顺便说一句,无论实际问题如何,我都在问这个问题。我觉得这是一个有趣的问题,我知道这可以在Android中完成(针对不同的API级别),但我不确定纯Java是否有可能。

提前谢谢

1 个答案:

答案 0 :(得分:0)

从理论上讲这是可能的,但并不是那么简单。建议您以Java 7标准编写代码,以便其向后兼容。但是,如果您仍然想编写2个类:您将需要在单独的项目中编写每​​个类,然后将它们编译(每个都使用正确的jdk版本)以放在不同的jar中。然后,您将需要编写自己的类加载器,该类加载器将根据您的jvm版本加载适当的jar。我肯定会说这不值得