有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java工厂类是否可以基于JVM版本进行结构化,以实例化Java 6或Java 7特定的类?

Java 7可以运行Java 6代码,但Java 6不能运行Java 7特定的代码(例如NIO 2.0)。我想支持使用任何一种JVM的用户,但为Java 7用户提供额外的功能

如果JVM是1.6,它可以有条件地实例化一个Java 6编译类;如果JVM是Java 7,它可以有条件地实例化一个Java 7编译类,那么是否可以使用一个接口用Java 6构建一个工厂类

例如:

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代码


共 (1) 个答案

  1. # 1 楼答案

    你可以不用担心版本。您甚至可以构建“Java7”以在Java6上运行,但它不起作用,因为它需要不存在的类。i、 e.你可以有一个JAR,它可以在Java6中运行。而且你不需要使用反射