背景是这样的:一个流程包含多个节点,比如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
GWT中使用Enum实现多语言
本文介绍了一种在GWT中利用枚举类型实现国际化的方法,通过为每个事件类型定义具体的本地化字符串获取方式,有效解决了多语言环境下事件名称的展示问题。

1198

被折叠的 条评论
为什么被折叠?



