我想创建一个枚举并在其中声明几个常量以供内部使用...
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;
}
}
所以我想知道是否有更好的方法呢?
答案 0 :(得分:8)
我也会为enum
使用Categories
。如果将它放在顶级课程中,它看起来很自然。
您必须在任何其他常量之前定义enum
值。
AFAIK这样做是为了简化语法。首先使用特殊的简化语法,然后是您定义的常量,使用枚举值。当你开始在常量中重写方法时,对此的需求就更明显了。