Salesforce中的APEX是否支持SWITCH和CASE语句?

Dav*_*sby 12 salesforce apex

用IF/THEN/ELSEIF/ELSE代替这种基本结构

int month = 8;
String monthString;
if (month == 1) {
    monthString = "January";
} else if (month == 2) {
    monthString = "February";
}
...  // and so on
Run Code Online (Sandbox Code Playgroud)

拥有它会很高兴

    int month = 8;
    String monthString;
    switch (month) {
        case 1:  monthString = "January";
                 break;
        case 2:  monthString = "February";
                 break;

        ..... // and so on

        case 12: monthString = "December";
                 break;
        default: monthString = "Invalid month";
                 break;
    }
Run Code Online (Sandbox Code Playgroud)

这样可以提高可读性,并且由于意图清晰而使调试更容易.

Dav*_*sby 13

2018年 - 是的!!!! - 如果最后是 - 好消息 - 立即切换支持在黄金时刻 跳转到YouTube会话的视频中的确切时间

2014年 - 不是在这个可悲的时刻.自2009年以来,我一直在等待此功能,这是一个高度要求的通过以下社区的链接.

将"Switch"或"Case"语句添加到Apex

  • 在我看来 - 不会发生.`Case`已经是一个关键字(标准对象之一).我可怜这个傻瓜必须编写一个能够找出正确用法的编译器:P (2认同)

小智 9

    monthMap = new Map<Integer,String>();
    monthMap.put(1,'JAN');
    monthMap.put(2,'FEB');
    monthMap.put(3,'MAR');
    monthMap.put(4,'APR');
    monthMap.put(5,'MAY');
    monthMap.put(6,'JUN');
    monthMap.put(7,'JUL');
    monthMap.put(8,'AUG');
    monthMap.put(9,'SEP');
    monthMap.put(10,'OCT');
    monthMap.put(11,'NOV');
    monthMap.put(12,'DEC');
Run Code Online (Sandbox Code Playgroud)

然后根据您的整数月值进行获取.

没有必要写一个大的if-else.

  • +1但是`new Map <Integer,String> {1 =>'JAN',2 =>'FEB',3 =>'MAR'};` - 浪费更少的脚本语句,并且不会将调试日志垃圾邮件. (4认同)

Dan*_*ger 5

switch Apex 将在 Summer '18 版本中提供声明支持。

来自 TrailheadX 2018 会话与 Apex 切换

在此处输入图片说明

最初它将支持 Enums、String、Integer 和 Long