gpt4 book ai didi

java - Java Factory 类是否可以构造为根据 JVM 版本实例化 Java 6 或 Java 7 特定类?

转载 作者:行者123 更新时间:2023-11-30 11:30:58 26 4
gpt4 key购买 nike

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

是否可以使用接口(interface)构建带有 Java 6 的工厂类,以便它可以有条件地实例化 Java 6 编译类(如果 JVM 是 1.6)或 Java 7 编译类(如果 JVM 是 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 代码?

最佳答案

您可以这样做而不必担心版本问题。您甚至可以构建“Java 7”以在 Java 6 上运行,但不会工作,因为它需要不存在的类。也就是说,您可以拥有一个在 Java 6 中运行的 JAR。你也不需要使用反射。

关于java - Java Factory 类是否可以构造为根据 JVM 版本实例化 Java 6 或 Java 7 特定类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17477400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com