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 で Factory クラスを構築することは可能ですか?
例:
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();
}
その場合、Java 6 でコンパイルされたコード用と Java 7 コード用の 2 つのバージョンを別々の jar にパッケージ化する必要がありますか?