可能重複:
Using Java 7 SDK features in Java 6是否可以選擇加入Java 7 API?
我有一個Java應用程序(實際上它是Scala的應用程序,但我不認爲這改變了),運行在JVM 6。
我想使用一些新的Java 7 APIs,如NIO2(如果它們可用),但如果它們不可用則回退到其他實現。目標是在可能的情況下使用Java 7 API,同時使用相同的二進制文件(jar)保持與Java 6的兼容性。
它應該可以通過檢查與Class.forName("java.nio.file.attribute.BasicFileAttributeView")
,但我不知道如何如果例如, Java類文件具有不同的版本,這將使得不可能在也可在Java 6中運行的代碼中使用Java 7類。
如果你採用這種方法,你將不得不廣泛使用反射。否則,代碼不會在JDK <7版本上編譯。 – Manish 2012-01-06 09:40:08
聽起來很凌亂。也許把Java-7相關的代碼放在一個單獨的jar文件中,並有兩個版本的jar文件,決定在運行時實際加載哪一個(工廠模式)? – Thilo 2012-01-06 09:51:18
@dogbane我認爲你是對的。 – dmeister 2012-01-06 10:54:31