在我正在使用的一些代碼中,我有一個現有的第三方API實現了從A擴展的事物(也許不是直接的,而是通過X,也許還實現了一堆其他接口)。Java:是否有可能說變量類型必須滿足多重繼承/接口要求
現在爲我正在處理的代碼,我有一個接口IB,它提供了A提供的附加功能。因爲我的很多代碼實際上都要求傳遞給它的對象擴展了A,並且還實現了IB,但是沒有辦法爲我的成員變量聲明我能想到的。但選擇A或IB會導致很多演員陣容。
我猜如果A有/有一個接口IA會解決這個問題,但是我沒有辦法改變A,或者我的IB實現不需要擴展A(第三方代碼使用A,並且需要通過它來關心很多管理,持久性,網絡,用戶接口等)。
class Z {
private List<?what here?> items;
/**The implementer of IB should know how to find the Z instance and call this.*/
private void subscribe(? item) {
items.add(item);
}
public void doSomethingWithItems() {
...code thats requires facilities from A and IB...
}
「列表- >」正在「列表
>」我認爲?去嘗試這個,並沒有真正考慮使這個方法是通用的。 –
@FireLancer是的,糾正。我回過頭來看看它的名字:) –
這是一個非常簡潔的技巧,可以從Java提供的類型參數的交集類型中引導第一類交集類型。我將添加到我的工具箱醜陋的泛型問題:-) – meriton