我想创建一个枚举并在其中声明几个常量以供内部使用...
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;
}
}
不幸的是,它不能以这种方式完成。到目前为止,我提出的最佳解决方案是声明一个嵌套接口(interface)来存储常量...
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
值。
AFAIK 这样做是为了简化语法。您首先使用特殊的简化语法获得枚举值,然后是您定义的常量。当您开始覆盖常量中的方法时,对此的需求会更加明显。
关于java - 在枚举中声明常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23624686/