背景是这样的:一个流程包含多个节点,比如create, logon, register等等。
有一个页面用来显示用户经过了哪些流程以及发生时间等信息,它的输入是一个包含这些信息的xml数据,需要根据locale,显示不同的事件名称(比如,create在英文下显示create,而在中午下显示“创建”。
一开始想用反射,但GWT不支持反射。if else太罗嗦,switch也不大顺手,想到了enum。
枚举类:
public enum EventTypes {
CREATE() {
@Override
public String getDesc() {
//code below gets localized property from EventMessages.properties in GWT
return EventMessages.INSTANCE.CREATE();
}
},
ACCEPT() {
@Override
public String getDesc() {
return EventMessages.INSTANCE.ACCEPT();
}
}
public abstract String getDesc();
}
调用的地方:
...
String event = "";//passed-in event name, string
return EventTypes.valueOf(event).getDesc();
Reference:
http://ajaxonomy.com/2007/java/making-the-most-of-java-50-enum-tricks
一开始想用反射,但GWT不支持反射。if else太罗嗦,switch也不大顺手,想到了enum。
枚举类:
public enum EventTypes {
CREATE() {
@Override
public String getDesc() {
//code below gets localized property from EventMessages.properties in GWT
return EventMessages.INSTANCE.CREATE();
}
},
ACCEPT() {
@Override
public String getDesc() {
return EventMessages.INSTANCE.ACCEPT();
}
}
public abstract String getDesc();
}
调用的地方:
...
String event = "";//passed-in event name, string
return EventTypes.valueOf(event).getDesc();
Reference:
http://ajaxonomy.com/2007/java/making-the-most-of-java-50-enum-tricks