【发布时间】:2015-08-11 15:35:15
【问题描述】:
是否可以为所有Enum 类覆盖方法toString,而不是仅在枚举类中覆盖它。示例:
Coins.java:
enum Coins { PENNY(1), POUND(100), NOTE(500);
private int value;
Coins(int coinValue) {
value = coinValue;
}
[...] // Other code
public String toString() {
return name().charAt(0) + name().substring(1).toLowerCase();
}
}
DaysOfWeek.java:
enum DaysOfWeek { MONDAY(1), TUESDAY(2), WEDNESDAY(3);
private int dayID;
DaysOfWeek(int ID) {
dayID = ID;
}
[...] // Other code
public String toString() {
return name().charAt(0) + name().substring(1).toLowerCase();
}
}
目前,我必须在每个枚举类中覆盖 toString()。我可以创建一个通用的toString 方法来覆盖所有枚举类型的类,而无需在每个枚举类型类中实际编写toString?
【问题讨论】:
-
没有。假设您为两种枚举类型中的所有类覆盖了此方法。应该执行哪个
toString代码? -
@Pshemo 在该枚举中声明的 toString 方法将在您从该枚举调用该方法时执行。但是如果不可能覆盖所有枚举类,那么在每个枚举类中键入 toString 不是效率低下吗?