我可以在请求主体 Spring Boot 上使用枚举类型字段吗

问题描述 投票:0回答:1

是否可以在 Spring Boot 中的请求主体上使用枚举类型字段,例如

public enum Status{
A,
B,
C
}
@Getter
@Setter
@NoArgsConstructor
public class Order{
   private Status status;
}

如果可能的话,如何使用 spring 验证来处理其验证。

java spring spring-boot
1个回答
0
投票

可以在请求正文中接收枚举值,但如果该值丢失,则会引发异常

因此,使用 CustomValidator 接收它们会更安全一些。

public enum Status {
    A,
    B,
    C;

    public static Status translateStringToStatus(String statusString) {
        switch (statusString.toUpperCase()) {
            case "A":
                return Status.A;
            case "B":
                return Status.B;
            case "C":
                return Status.C;
            default:
                throw new IllegalArgumentException("Unsupported status: " + statusString);
        }
    }
}

或者,您可以使用自定义注释来处理它,如以下链接

所示

祝你有美好的一天 - 凯文

© www.soinside.com 2019 - 2024. All rights reserved.