我需要在兩個diffwrent平臺-SDK上使用相同的類。java中的預編譯器開關:如何更改導入類的路徑
雖然類和它的方法是相同的,但訪問類的路徑卻不同。 在一個設備,我需要使用:
進口a1.a2.classname
而第二設備,我需要使用:
進口b1.b2.b3.classname
請不要問我爲什麼:我沒有編寫SDK,我不能改變它們。
所以問題是:你會怎麼做?有沒有辦法在不同的sdk版本上導入同一個類的不同版本?
在C++中,我會用預編譯器開關,如:
#ifdef SDK1
#include "path1/class.h"
#else
#include "path2/class.h"
#endif
你將如何在Java中做到這一點?
請考慮,我不能從類派生的,因爲我只能訪問其界面和方法的數量太大,考慮使用代理
這會寫你做出多個版本。如果您使用'Class.forName()',則可以爲兩者使用一個版本,並在運行時選擇差異。 (應用程序可以根據使用情況檢測導入哪一個) –
問題是,在我使用該類的所有類中,我必須添加對於不同SDK的不同導入。這是真的,除非我把這個類包裝在我想要避免的代理中 – kingston
我傾向於避免多個構建,因爲一旦你開始走這條路,這會變成一場噩夢。 –