Java 在枚举内声明常量

Java 在枚举内声明常量,java,enums,constants,Java,Enums,Constants,我想创建一个枚举,并在其中声明几个常量以供内部使用 public enum SearchType { static final String TEXT = "text"; static final String BOOLEAN = "boolean"; STARTS_WITH(TEXT), ENDS_WITH(TEXT), CONTAINS(BOOLEAN), WILDCARD(TEXT), REGEXP(TEXT), RANG

我想创建一个枚举,并在其中声明几个常量以供内部使用

public enum SearchType {

    static final String TEXT = "text";
    static final String BOOLEAN = "boolean";

    STARTS_WITH(TEXT),
    ENDS_WITH(TEXT),
    CONTAINS(BOOLEAN),
    WILDCARD(TEXT),
    REGEXP(TEXT),
    RANGE(TEXT)


    private String searchType;

    private SearchType(String type) {
        searchType = type;
    }

}
不幸的是,不能这样做。到目前为止,我提出的最佳解决方案是声明一个嵌套接口来存储常量

public enum SearchType {

    STARTS_WITH(Categories.TEXT),
    ENDS_WITH(Categories.TEXT),
    CONTAINS(Categories.BOOLEAN),
    WILDCARD(Categories.TEXT),
    REGEXP(Categories.TEXT),
    RANGE(Categories.TEXT)


    interface Categories{
        static final String TEXT = "text";
        static final String BOOLEAN = "boolean";
    }

    private String searchType;

    private SearchType(String type) {
        searchType = type;
    }

}

因此,我想知道是否有更好的方法可以做到这一点?

对于
类别
,我也会使用
enum
。如果你把它放在顶级课堂上,它看起来会很自然

您必须在任何其他常量之前定义
enum


这样做是为了简化语法。首先使用特殊的简化语法获得枚举值,然后是定义的常量。当您开始重写常量中的方法时,这种需要就更加明显了。

谢谢!它甚至可以用作嵌套枚举(至少可以编译)