近期的项目里用到了枚举,用于列出消息的类型。最初我是这么写的
public enum MessageTypeName {
公告,
订购,
退款
}
但是在别人调用的时候总是总是 点+中文,组长说为了让我们的代码更加的具有通用性,更加国际化,要我想办法改成英文的。但是数据库只有一个字段, 有没有什么办法可以在写代码的时候用英文,而存储或显示的时候用中文呢?
带抽象方法的枚举就派上了用途:
public enum MessageTypeName {
/** 公告 */
NOTICE("NOTICE") {
public String getName() {
return "公告";
}
},
/** 订购 */
BUY("BUY") {
public String getName() {
return "订购";
}
},
/** 退款 */
REFUND("REFUND") {
public String getName() {
return "退款";
}
};
public abstract String getName();
private String value;
private MessageTypeName(String value) {
this.value = value;
}
}
这样,在调用的时候只需MessageTypeName.NOTICE.getName()便可以获得中文名称啦!