如何检查枚举值和 return 对应的枚举

how to check enum values and return corresponding enum

我的架构如下

"statusCode": {  
            "type": "string",
            "enum": ["A", "T", "U"]
        }

我正在尝试编写一个方法来检查代码和 return 相应的枚举。

private void updateStatusCode(Event event) {
        Enum code = null;
        switch(event.getStatusCode()) {
            case A:
            code = ["A"];
            break;
            case T:
            break;
            case U:
            break;
            default:

        }
         return code;

    }

event.getStatusCode 有效值为:A、T、U。现在我需要检查这些代码和基于代码的 return 枚举。我尝试了上面的方法,但它在代码 = [“A”] 上给了我错误。错误状态如下。

Syntax error on token "=", Expression expected after this token

我该如何解决这个问题?我是 java 的新手。感谢您的帮助,谢谢

您似乎对枚举在 Java 中的工作方式感到困惑。 enum 基本上是 well-known 值的列表,可以分配给枚举 class 的实例。它包含根据需要经常转换 from/to String 的方法。 Enum 是它们的超级class,但您通常不需要直接使用它。

例如,假设我有以下定义:

enum StatusCode {
 A,
 T,
 U
}

这意味着 class StatusCode 的对象只能具有值 ATU。 要转换,我会使用 :

String fromString = "A";
StatusCode sc = StatusCode.valueOf(fromString); //gives sc = StatusCode.A
String backToString = sc.name(); //gives backToString = "A"

在此处了解更多信息:https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

我不知道你想在这里做什么,但你误解了枚举的概念。在评论中你说 statusCode 是一个枚举但它不是一个枚举它是 json 格式而不是真正的 Java expression.As 我说我不知道​​你在尝试什么实现,但你可以像下面这样修改你的代码。

首先创建一个枚举

enum StatusCode{
   A,
   B,
   U

}

如果您想获得与枚举值等效的字符串,请使用以下代码

enum StatusCode{
   A("A"),
   T("T"),
   U("U");
   String code;
   public StatusCode(String code){
     this.code=code;
   }
   String getCode(){
     return code;
   }
  }

然后像这样修改你的方法

private void updateStatusCode(Event event) {
        StatusCode code;
        switch(event.getStatusCode()) {
            case A:
            code = StatusCode.A;
            break;
            case T:
            code = StatusCode.T;
            break;
            case U:
            code = StatusCode.U;
            break;
        }
         return code;

    }

您可以获得枚举的字符串值作为

StatusCode code=StatusCode.A;
String strCode=code.getCode();