Java 7 可以运行Java 6 代码,但Java 6 不能运行Java 7 特定代码(例如NIO 2.0)。我想支持使用任一 JVM 的用户,但为 Java 7 用户提供额外的功能。
是否可以使用接口使用 Java 6 构建 Factory 类,以便如果 JVM 是 1.6,它可以有条件地实例化 Java 6 编译类,或者如果 JVM 是 Java 7,它可以有条件地实例化 Java 7 编译类?
例如:
String javaVersion = System.getProperty("java.version");
if (javaVersion.startsWith("1.6")) {
myInterface = Class.forName("com.project.java6.MyInterfaceImplementation").newInstance();
}
else {
myInterface = Class.forName("com.project.java7.MyInterfaceImplementation").newInstance();
}
如果是这样,这两个版本是否需要打包在单独的 jar 中,一个用于 Java 6 编译代码,另一个用于 Java 7 代码?