現狀:使用類方法
我想寫像下面這樣的通用功能:
public <T> void do(T para){
para.something();
}
問題: 我想給兩個不同的類的實例do()函數。這兩個班都來自一個設計不好的圖書館。這兩個類都有一個something()方法。但是他們沒有實現相同的接口或擴展相同的超類。
我不過首先:
我可以寫這樣的:
if(para instanceof A){
((A)para).something();
else if(para instanceof B){
((B)para).something();
}
我想這會的工作,但我需要調用的東西()更頻繁,不想要的垃圾郵件我的代碼用這個if/else。有沒有人有一個很好的線索?提前致謝!
把'something()'方法放到你的類'A'和'B'實現的接口中,並綁定泛型:'public ...'。 –
@AndyTurner這兩個類都來自圖書館 –
正如我所說:A和B從圖書館出來。我不想改變那裏的代碼。 – GAlexMES