可能重複編譯一個OSGI 4.2應用程序時:
How to compile mavenized OSGi 4.3 bundle with OpenJDK 7?編譯器沒有發現泛型信息使用javac
我不明白髮生了什麼,但最新的OSGI庫我正在使用的服務定義等具有泛型信息。當我針對這個庫編寫源代碼時,我的IDE正確地解釋了泛型信息並讓我編寫我的代碼。
但是當它用javac編譯代碼時,會出現「類型ServiceFactory不帶參數」的編譯錯誤。使用Eclipse編譯器不會發生此錯誤(但IDEA 11中的Eclipse編譯器似乎不喜歡像「new HashMap <>()」這樣的新JDK 7語言結構,所以我不能真正將它用作替換)。
我在第一次研究這個問題的時候在某處讀到OSGI二進制jar有問題,因爲類文件是爲JDK 1.4二進制兼容性編譯的,而且這是干擾了正在保存的仿製信息當編譯器加載類時。我不記得是否正確,因爲當我去尋找它時我找不到那個網頁。
那麼這裏的交易是什麼?爲什麼javac不能查看OSGI 4.x類的泛型信息,因此我可以在OSGI應用程序中使用泛型?
見http://stackoverflow.com/a/10917093/448551 – 2012-07-13 22:17:54