我有一个扩展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
的所有逻辑,这就是我扩展它的原因,而且还覆盖了基本方法。我该怎么做? 最佳答案
您可以创建一个使用泛型的中间类。例如CustomSettingsAdapter<T> extends FragmentStatePagerAdapter
。
这样,您的getItem()
方法可以返回T
。
然后,将通用逻辑放入该类中,然后创建新的类,如下所示:CarSettingsAdapter extends CustomSettingsAdapter<CarSettings>
NewCarSettingsAdapter extends CustomSettingsAdapter<NewCarSettings>