我有一个扩展CarSettingsAdapter
的课程FragmentStatePagerAdapter
。
在那个类中,我有一个重写的方法,它返回CarSettings类型的项目
@Override
public CarSettings getItem(int position) {
return carSettingsList.get(position);
}
现在我创建了一个扩展类CarSettingsAdapter
的新类,但我想让它返回我自己的类型 - 让我们说MyTypeB
public class NewCarSettings extends CarSettings {
@Override
public MyTypeB getItem(int position) {
return typeBList.get(position);
}
}
我无法覆盖它,我收到编译错误 - The return type is incompatible with CarSettingsAdapter.getItem(int)
。
我想使用CarSettingsAdapter
的所有逻辑,这就是我扩展它的原因,也是为了覆盖基本方法。我该怎么办?
答案 0 :(得分:2)
您可以创建一个使用泛型的中间类。例如CustomSettingsAdapter<T> extends FragmentStatePagerAdapter
。
这样,您的getItem()
方法可以返回T
。
然后你将通用逻辑放在那个类中并创建这样的新类:
CarSettingsAdapter extends CustomSettingsAdapter<CarSettings>
NewCarSettingsAdapter extends CustomSettingsAdapter<NewCarSettings>