GWT警告:“启用枚举混淆时调用Enum方法toString”

时间:2014-04-26 20:33:41

标签: java javascript html gwt enums

我使用GWT 2.6选项:

<set-configuration-property name="compiler.enum.obfuscate.names" value="true" />

编译时,我收到以下警告。

[WARN] Call to Enum method valueOf when enum obfuscation is enabled: Someclass
Replacing Enum.name method :  com/google/gwt/emul/java/lang/Enum.java:115

这是什么意思?

1 个答案:

答案 0 :(得分:0)

在GWT中使用枚举时,最好不要依赖enum的默认方法,如toString,name,valueOf。

如果要提供enum实例名称的公共访问权限,或者要提供检索枚举实例的工厂方法,则最好创建自定义方法。

考虑以下示例:

public enum MyEnum {
    FIRST("First"), SECOND("Second");

    // MyEnum factory method
    public static MyEnum of(String name) {
        switch (name) {
            case "First": return FIRST;
            case "Second": return SECOND;
            default: return null;
        }
    }

    private final String name;

    private MyEnum(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}
相关问题