【发布时间】:2011-07-29 15:09:07
【问题描述】:
我有 4 个不同的类,其中有一个名为 WebService 的通用 superlass,每个类都声明了以下枚举(具有不同的值):
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 次...
【问题讨论】:
-
如果您认为枚举常量应该自然显示,您可以将它们设为小写,那么您的 toString() 就不需要了。
-
@Peter Lawrey 我正在考虑这个问题,但这不违反 java 编码约定吗? (常量应为大写)
-
他们应该,但第一条规则应该是;做你认为最清晰、最简单的事情。
-
如果可以,您应该将您的枚举设为私有。然后你就可以省去java编码约定了。
标签: java inheritance enums