在Java中的Enum中为null

时间:2018-06-18 06:34:19

标签: java spring enums

我的控制器中有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 "".

1 个答案:

答案 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;
    }
}