作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有 4 个不同的类,它们都有一个名为 WebService
的通用父类(super class),每个类都声明了以下枚举(具有不同的值):
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() 方法提取到通用父类(super class)/枚举中?现在,我必须为每个枚举复制 toString() 8 次...
最佳答案
正如其他人所指出的,您不能让枚举从公共(public)类继承。如果您正在做的事情比您在示例代码中显示的更复杂,那么您可以在某个地方使用某种静态的辅助函数来接收枚举并进行计算。枚举可以实现一个接口(interface),因此您可以通过这种方式潜在地处理复杂的通用 toString。
关于Java 枚举继承 : Is it possible to somehow extract the enums' toString() method to a common super class/enum?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6875196/
我是一名优秀的程序员,十分优秀!