我的控制器中有3种枚举类型。此外,已在UI上设置了适当的检查。但是,如果有人用等于null的值测试API,那么我就不知道如何处理它。
以下是代码:
public enum AuthStatus implements Comparable<AuthStatus> {
ABC("test", "testtt", -1),
DEF("tesds", "dsds", 0),
.
.
如果有效载荷中给出了ABC或DEF,一切正常,如果有效载荷中没有给出怎么办,即。 &#34;&#34;
基本上,我想添加&#34;&#34;作为枚举类型,例如:
ABC("test", "testtt", 2),
DEF("tesds", "dsds", 0),
""("invalid", "Not Valid", -1) // What should be replaced by "".
答案 0 :(得分:2)
枚举名称必须是有效的Java标识符,并且没有有效字符长度为零的有效Java标识符。
如果要将输入与某个值匹配,则使用Java枚举名称来表示这不是一个好主意,因为Java标识符还有许多限制(不能包含空格或许多其他字符)。您应该在枚举中添加另一个字段,您可以将其命名为matchValue
,并将输入与该值匹配,而不是与枚举名称匹配。
public enum AuthStatus implements Comparable<AuthStatus> {
ABC("ABC", "test", "testtt", -1),
INVALID("", "invalid", "Not Valid", -1);
private final String matchValue;
private AuthStatus(String matchValue, ...) {
this.matchValue = matchValue;
}
}