我有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()方法提取到一个通用的超类/枚举?现在,我必须为每个枚举复制8次toString() ...
发布于 2011-07-29 23:14:46
正如其他人所指出的,您不能让枚举继承自一个公共类。如果您正在做一些比示例代码中显示的更复杂的事情,那么您可以使用某种帮助器函数,该函数在某处是静态的,它接受枚举并执行计算。枚举可以实现一个接口,因此您可以通过这种方式潜在地处理复杂的通用toStrings。
发布于 2011-07-29 23:11:06
枚举是最终的,也不能继承任何东西,所以不能。你能做的最好的事情就是重写toString()并委托给一个通用的" to -stringer“实现,这样你就不必一遍又一遍地编写实际的实现。
发布于 2011-07-29 23:11:57
因为enum没有可用的继承模型,所以您不能从enum类扩展任何内容,因此..
https://stackoverflow.com/questions/6875196
复制相似问题