我有興趣使用Java 7 SDK中的某些NIO2功能(特別是file system watchers),但是我不想爲Java 7編譯我的類並排除Java 6次運行。主要是因爲我想保持與Mac OS X的兼容性,也是因爲我不想強制用戶升級。在Java中使用Java 7 SDK功能6
這可能嗎?什麼是最好的方式來做到這一點?任何鏈接或例子?
下面是我可以想到的一些方法:使用不同的編譯器編譯類文件並基於Java版本動態加載它?或者也許使用反射?或者也許只有Java 7的編譯器設置來生成Java 6兼容的類?
我正在尋找一種不會變成醜陋混亂的解決方案:),所以理想情況下我可以編寫兩個接口實現,一個使用新功能,另一個不使用,然後動態選擇一個,而不是在全國各地做反思性會議。
由於我推測這些功能在SE7中開始存在,您如何認爲您可以使用SE6兼容模式進行編譯並保留它們? – KevinDTimm
我想要做的只是在Java 7運行時執行程序時使用它們,如果不是,則會退回到其他行爲上。請注意,我正在談論Java 7 SDK功能,而不是語言功能。 –
對不起,兩個代碼庫將是必要的(或者至少每個環境都有單獨的文件處理基礎,併爲每個版本創建單獨的輸出,因爲在版本X中編譯的代碼通常不會在任何較低編號的版本中工作) – KevinDTimm