首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java枚举继承:是否有可能以某种方式将枚举的toString()方法提取到一个通用的超类/枚举?

Java枚举继承:是否有可能以某种方式将枚举的toString()方法提取到一个通用的超类/枚举?
EN

Stack Overflow用户
提问于 2011-07-29 23:09:07
回答 3查看 615关注 0票数 3

我有4个不同的类,它们有一个叫做WebService的通用超类,每个类都声明了下面的枚举(值不同):

代码语言:javascript
复制
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() ...

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-29 23:14:46

正如其他人所指出的,您不能让枚举继承自一个公共类。如果您正在做一些比示例代码中显示的更复杂的事情,那么您可以使用某种帮助器函数,该函数在某处是静态的,它接受枚举并执行计算。枚举可以实现一个接口,因此您可以通过这种方式潜在地处理复杂的通用toStrings。

票数 2
EN

Stack Overflow用户

发布于 2011-07-29 23:11:06

枚举是最终的,也不能继承任何东西,所以不能。你能做的最好的事情就是重写toString()并委托给一个通用的" to -stringer“实现,这样你就不必一遍又一遍地编写实际的实现。

票数 1
EN

Stack Overflow用户

发布于 2011-07-29 23:11:57

因为enum没有可用的继承模型,所以您不能从enum类扩展任何内容,因此..

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6875196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档