在我正在使用的一些代码中,我有一个现有的第三方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