如何解析字符串并在Apex代码中返回枚举值?

the*_*ogz 5 salesforce apex-code

我想在我的Apex代码中使用Enum值,因为我们在使用外部服务时有一些严格的类型,但是当我从外部服务获得响应时,我正在努力将Enum值的String表示转换回Enum所以它可以在我的代码中使用.

要在C#中执行此操作,我会这样做:

DayOfWeek wednesday = 
      (DayOfWeek)Enum.Parse(typeof(DayOfWeek), "Wednesday");
Run Code Online (Sandbox Code Playgroud)

但在Apex代码中我找不到办法做到这一点.有人有解决方案吗?

bar*_*own 8

这不是通用的,但它可以工作:

String dayOfWeekNameToMatch = 'Wednesday';
DayOfWeek dayOfWeekMatch;
for (DayOfWeek dow: DayOfWeek.values()) {
    if (dow.name() == dayOfWeekNameToMatch) {
        dayOfWeekMatch = dow;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 我已经发布了Idea [从字符串进行Apex枚举解析](https://success.salesforce.com/ideaView?id=08730000000LfWhAAK),以查看是否可以直接从Apex处理此问题。 (2认同)