为什么无法在枚举值中定义枚举

时间:2016-01-20 07:30:25

标签: java enums

我想在Enum值中定义几个String常量,并在相同的枚举值中使用上下文访问这些常量。对于例如 以下是我的枚举定义:

public enum EventType {
    QUERY_UPDATE {
        public String QUERY_LIST = "QUERY_LIST"; //this variable is not accessible in client code.
    },
    SINGLE_RESULT_HANDLE {
        public static final String SINGLE_QUERY_OBJECT = "SINGLE_QUERY_OBJECT"; //this variable is not accessible in client code.
        public static final String SINGLE_QUERY_RESULT = "SINGLE_QUERY_RESULT";
    },
    COLLATED_RESULT_HANDLE {
         enum Keys{ //compiler error : The member enum Keys can only be defined inside a top-level class or interface or in a static context.
            COLLATED_RESULT_LIST,
        }
    };
}

在我的代码中,我想使用这些枚举值:

//客户端代码。

GenericEvent resultEvent = new GenericEvent(EventType.QUERY_UPDATE);
resultEvent.addContextProperty(EventType.QUERY_UPDATE.QUERY_LIST, "abcd"); //LINE 2

现在在上面的LINE 2(第一个参数)中,我想指定仅属于EventType.QUERY_UPDATE的String Constant。但似乎没有办法完成这项工作。请建议如何解决此问题。

0 个答案:

没有答案