2012-03-12 17 views
0

庫版本之間的更改安全的方法我要調用第三方JAR Java方法,在某種程度上這是兩個不同版本的API兼容。調用API的方式,也就是針對JAVA

由於在新版本中只有一個附加參數,所以差異很小,但我應該確保我的應用程序能夠與兩個版本的庫一起工作並編譯。

我最好的選擇是使用反射來檢查各種方法的哪個版本可用,然後在運行時調用正確的,但如果有更優雅的方式,可能會使用一些第三方圖書館。

感謝

回答

1

如果您知道由第三方庫中的代碼將被鏈接到的預先的版本,你可以單獨有一個小包裝庫提供一個通用的接口,這兩個API的版本。

如果你不具備這種能力,反思可能是最好的選擇。根據您的項目及其構建系統的設置方式,您甚至可以使用一些適配器類,這些類將在檢測到第三方庫的API版本後在運行時加載。這樣你就不會遭受與反射方法調用相關的性能影響。

這就是說,你可能想看看在處理諸如OSGi使用合適的部署框架這樣的依賴問題。

+0

@RaffaeleCastagno:是的,但是您是否控制應用程序的每個副本隨附哪個版本? – thkala 2012-03-12 22:56:06

+0

我目前有兩個版本的庫。 引入與maven或類似的依賴關係管理是不是一個選項,將花費太多時間(整個應用程序是相當大的)。 我的問題是庫提供者在最新的補丁中引入了一些變化,我們目前在我們的客戶系統上安裝了兩個不同的版本,並且我們必須確保我們的通用代碼庫與兩者兼容。 我會嘗試使用包裝,然後再進行反射方法。不管怎麼說,還是要謝謝你。 – 2012-03-12 23:05:18

+0

對不起@thkala在看到你的評論之前,我已經改寫了我的評論。 答案是肯定的,排序的:參與圖書館是一個定製的應用程序容器的一部分,所以我知道我要使用完全相同的版本,並作爲萬不得已的手段,我應該能夠做一些參數的東西,在建設 - 時間。無論如何,正如我寫的,我只是對如何爲不斷變化的庫實現封裝器有了一些想法。明天考試。 – 2012-03-12 23:09:27