因为最近项目中频繁使用到枚举,每个枚举中有两个字段 1,code 2,title ,有时需要根据code来获取对应的title
我之前的做法是这样,我先上代码
public static String getTitleByCode(int code){
OrderStatusBean[] orderStatusBeanValues=OrderStatusBean.values();
String currentOrderTitle="";
for (int i = 0; i < orderStatusBeanValues.length; i++) {
if(orderStatusBeanValues[i].getCode()==code){
currentOrderTitle=orderStatusBeanValues[i].getTitle();
break;
}
}
return currentOrderTitle;
}
但是现在项目里面有十几个枚举,每个枚举都要写一遍实在是太麻烦了,所以我想让这些枚举都继承一个父类,然后将这个方法写在父类里面,我再统一调用父类中公共的方法就行了。
但是:
在要在父类的方法中要获取到调用这个父类的子类的所有属性,这该怎么做呢??
不造我描述清楚了么。。。。
你的getTitleByCode
方法是静态的,子类无法继承。有2种方法可以选择:
把
getTitleByCode
改为非静态的,同时values
也改为非静态的。然后在子类中重写values
方法即可如果希望
getTitleByCode
仍然为静态方法,那就必然要增加一个参数,把当前枚举子类的类型或能区分类型的值传进去,然后根据类型来调用合适的values
,只能这样了