【发布时间】:2017-11-29 17:14:41
【问题描述】:
我正在使用 MVP 模式开发一个 Android 应用程序。
我希望有不同的演示者,每个演示者都实现 getItems,它们调用关联模型的 getAll 静态方法。
我想使用泛型,结果是这样的:
public class BasePresenter<T> {
protected T mModel;
List getItems() {
mModel.getAll();
}
}
public class Presenter extends BasePresenter<Model> {
}
但我无法使用泛型访问getAll 方法,因为它不是Object 的方法。
因为对我来说,为所有演示者编写相同的无聊方法getAll() 是愚蠢的,只改变模型,有没有办法做到这一点?
我问这个问题是因为即使在 Google 的官方 MVP 指南中,它也总是使用相同的方法来检索数据,并在每个演示者上覆盖它,我希望有更好的方法。
我想“转换”超类 mModel,但我不知道如何以及是否可以这样做。
【问题讨论】:
标签: java android generics mvp superclass