我的 Controller 中的功能有 3 个枚举类型。此外,还对 UI 设置了适当的检查。但是,如果有人用等于 null 的值测试 API,那么我不知道如何处理。
代码如下:
public enum AuthStatus implements Comparable<AuthStatus> {
ABC("test", "testtt", -1),
DEF("tesds", "dsds", 0),
.
.
如果有效负载中给出了 ABC 或 DEF,一切正常,如果有效负载中没有给出任何内容该怎么办,即“”。
基本上,我想添加“”作为枚举类型,例如:
ABC("test", "testtt", 2),
DEF("tesds", "dsds", 0),
""("invalid", "Not Valid", -1) // What should be replaced by "".
最佳答案
枚举名称必须是有效的 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;
}
}
关于java - Java 中枚举中的 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50903792/