【发布时间】:2015-08-25 10:11:59
【问题描述】:
我有一个超类,它具有一些用于下载名为MySuperclass 的东西的通用行为。这个类有一个回调接口,用于进一步使用payload。
public class MySuperclass {
public interface MyDownloadListener{
void onDownload(Object payload);
}
private MyDownloadListener listener;
...
public void download(){
...
listener.onDownloaded(response);
}
}
我从MySuperclass 派生多个类,这里称为MySubclassA 和MySubclassB。
public class MySubclassA extends MySuperclass{
...
}
public class MySubclassB extends MySuperclass{
...
}
当我尝试在第三个类中使用两个子类时会发生冲突。我将不得不做类似的事情
public class MyClass implements MySubclassA.MyDownloadListener, MySubclassB.MyDownloadListener{
...
public void onDownloaded(Object payload){
// here is the conflict
}
}
但这不起作用,因为我无法区分两个不同的回调接口。我该如何解决这个问题?
【问题讨论】:
-
乍一看,我会创建两个内部类,每个实现一个回调接口,而不是让(外部)类本身实现它们。
-
@Fildor 乍一看,这对我来说是行不通的。
-
您能告诉我们为什么它不适用于您的情况吗?
-
@Fildor 乍一看,我想我明白你的建议。我需要仔细看看这个。但这似乎仍然不方便。有人可能认为我的问题在
Java中很常见。
标签: java inheritance interface callback