Possible Duplicate:
Using Java 7 SDK features in Java 6
我有一个运行在JVM 6上的Java应用程序(实际上它是一个Scala应用程序,但我认为这没有太大变化)。
我想使用一些新的Java 7 API(例如NIO2)(如果可用),但如果不可用,则回退到其他实现。目标是尽可能使用Java 7 API,同时保持与具有相同二进制文件(jar)的Java 6的兼容性。
应该可以通过Class.forName("java.nio.file.attribute.BasicFileAttributeView")
进行检查,但是我不知道例如Java类文件具有不同的版本,这使得无法在Java 6中也可以运行的代码中使用Java 7类。
最佳答案
一种方法是-使用接口对应用程序逻辑进行编码。将实现捆绑在两个不同的jar中-一个包含基于JDK6的实现,另一个包含JDK7实现。在运行时,使用System.getProperty(“java.version”)获取Java版本并实例化适当的实现(或者可以使用Strategy模式来设置适当的策略)。
关于java - 是否可以选择加入Java 7 API? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8755867/