Tôi muốn tạo một enum và tuyên bố một vài hằng số bên trong của nó để sử dụng bên trong ...Khai báo hằng bên trong enum
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;
}
}
tiếc là nó không thể được thực hiện theo cách này. Giải pháp tốt nhất mà tôi đã đưa ra cho đến nay là khai báo một giao diện lồng nhau để lưu trữ các hằng số ...
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;
}
}
vì vậy tôi tự hỏi liệu có cách nào tốt hơn để làm như vậy không?
Cảm ơn! Nó hoạt động ngay cả khi lồng nhau enum (ít nhất là biên dịch) –