我有4个不同的类,它们有一个名为WebService
的公共超类,每个类都有以下枚举声明的枚举(具有不同的值):
public class GeoPlacesService extends WebService {
public enum RequestParam {
LOCATION, RADIUS, SENSOR, KEY;
@Override
public String toString() {
return super.toString().toLowerCase();
}
}
public enum ResponseParam {
STATUS, LATITUDE, LONGITUDE, NAME;
@Override
public String toString() {
return super.toString().toLowerCase();
}
}
}
是否有可能以某种方式将枚举'toString()方法提取到公共超类/枚举?现在,我必须为每个枚举复制toString()8次...
答案 0 :(得分:2)
正如其他人所说,你不能让枚举从公共类继承。如果你正在做一些比你在示例代码中显示的更复杂的东西,那么你可以使用某种辅助函数,这个函数在某个地方是静态的,它接受枚举并进行计算。枚举可以实现一个接口,因此您可以通过这种方式处理复杂的常见toStrings。
答案 1 :(得分:1)
枚举是最终的,也不能从任何东西继承,所以没有。您可以做的最好是覆盖toString()并委托给一个常见的“to-stringer”实现,这样您就不必一遍又一遍地编写实际的实现。
答案 2 :(得分:0)
由于enum
没有可用的继承模型,因此无法从enum
类扩展任何内容,因此...