enum实现类似反射的功能

背景是这样的:一个流程包含多个节点,比如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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值