这是我的代码,我想使用多态性,但getpartactionlist是静态的,我不使用多态性。此方法返回parametrs partaction类的名称,对所有对象的行为都相同。getpartactionlist方法在我的代码中应该是静态的还是非静态的?请帮帮我。抱歉写得不好。
public class PartAction extends BaseAction {
private String address;
private String brand;
private String part_human;
public static List<String> getPartActionList() {
List<String> list = new ArrayList<>();
list.add("addressName");
list.add("brandName");
list.add("partHumanName");
return list;
}
switch (categoryEnums) {
case MAIN_CATEGORY:
recyclerViewCategory.setAdapter(new CategoryAdapter(getContext(),getMainCategory(), statusFragment, childFragmentManager));
break;
case BUY_CATEGORY:
recyclerViewCategory.setAdapter(new SubcategoryAdapter(getContext(), BuyAction.getBuyActionList(), statusFragment, childFragmentManager,action));
break;
case HUMAN_CATEGORY:
recyclerViewCategory.setAdapter(new SubcategoryAdapter(getContext(), HumanAction.getHumanActionList(), statusFragment, childFragmentManager,action));
break;
case HUMAN_SUBCATEGORY_1:
recyclerViewCategory.setAdapter(new SubcategoryAdapter(getContext(), HumanAction.getSubCategoryHumanList(), statusFragment, childFragmentManager,action));
break;
case HUMAN_SUBCATEGORY_2:
recyclerViewCategory.setAdapter(new SubcategoryAdapter(getContext(), HumanAction.getSecondSubCategoryHumanList(), statusFragment, childFragmentManager,action));
break;
case SERVICE_CATEGORY:
recyclerViewCategory.setAdapter(new SubcategoryAdapter(getContext(), ServiceAction.getServiceActionList(), statusFragment, childFragmentManager,action));
break;
case TRANSPORT_CATEGORY:
FragmentTransaction fragmentTransaction = childFragmentManager.beginTransaction();
fragmentTransaction.add(R.id.framLayout_child_category, new HomeFragment("حمل و نقل", action));
fragmentTransaction.addToBackStack(null).commit();
break;
case REPAIRS_CATEGORY:
recyclerViewCategory.setAdapter(new SubcategoryAdapter(getContext(), RepairAction.getRepairActionList(), statusFragment, childFragmentManager,action));
break;
case PARTS_CATEGORY:
recyclerViewCategory.setAdapter(new SubcategoryAdapter(getContext(), PartAction.getPartActionList(), statusFragment, childFragmentManager,action));
break;
1条答案
按热度按时间wljmcqd81#
你好像总是用
getPartActionList
方法在已具有操作的上下文中:这意味着您需要确保所使用的类(
PartAction
在本例中)匹配action
.如果你做了一个
getActionList
方法并将其放在BaseAction
类作为抽象方法,如下所示:然后你可以做:
如果switch语句的分支所处理的操作类型发生更改,那么您就少了一件需要手动更改的事情。