我在需要重写的抽象类中正确实现泛型时遇到问题。
public abstract class AbstractSerachView {
DataStore<AbstractCriteria, AbstractResults, AbstractService> resultsStore;
public abstract DataStore<AbstractCriteria, AbstractResults, AbstractService> getResultsStore();
}
子类如下:
public class TravelSearchView extends AbstractSearchView {
DataStore<TravelCriteria, TravelResults, TravelService> resultsStore;
public DataStore<TravelCriteria, TravelResults, TravelService> getResultsStore() {
return resultsStore;
}
}
这种抽象根本不起作用,尽管如果我能以某种方式完成这项工作,我将不胜感激。这里的正确方法是什么?我对泛型类型的经验很少。
问题是Eclipse在子类中提示错误:返回类型与AbstractSearchView.getResultsStore()不兼容
此外,如果我将子类 get 方法保留为 3 种抽象类型,并使用 3 种旅行类型覆盖变量,则一切正常,除了返回行,其中 Eclipse 指示:类型不匹配:无法从 DataStore 转换为 DataStore