在我使用" inFusion Hydrogen"为了分析我的项目,很容易弄清楚myQuestionFun()导致功能嫉妒。
public abstract class Father{
protected DataModel dataModel;
public abstract void myQuestionFun();
}
public class Child extends Father{
public DataModel<TableInfo> tableList = new DataModel<TableInfo>;
public DataModel<TableInfo> getTableList(){
return this.tableList;
}
@Override
public DataModel<Report> getDataModel(){
return this.dataModel;
}
@Override
public void myQuestionFun(){
List<TableInfo> tabList = new ArrayList<TableInfo>();
for (int i=0; dataModel.getDataList().size(); i++) {
Report rep = (Report)dataModel.getDataList.get(i);
TableInfo tabInfo = new TableInfo();
tabInfo.setId(rep.getId());
tabInfo.setName(rep.getName());
tabList.add(tabInfo);
}
tableList.setPage(dataModel.getPage());
tableList.setSorter(dataModel.getSorter());
}
}
问题是,解决问题的最佳方法是什么? 因为myQuestionFun()是父类的抽象方法的函数,所以我无法移动它。
答案 0 :(得分:1)
提取以下代码作为从Child进入父亲的方法:
protected List<TableInfo> getTabList() {
final List<TableInfo> tabList = new ArrayList<TableInfo>();
for (int i=0; dataModel.getDataList().size(); i++) {
Report rep = (Report) dataModel.getDataList.get(i);
TableInfo tabInfo = new TableInfo();
tabInfo.setId(rep.getId());
tabInfo.setName(rep.getName());
tabList.add(tabInfo);
}
return tabList;
}
将以下方法移至Father,如果它总是应该返回this.dataModel:
public DataModel<Report> getDataModel(){
return this.dataModel;
}
答案 1 :(得分:0)
删除dataModel
字段Father
并切换到界面。