美文网首页Salesforce
Salesforce基础 - Apex枚举

Salesforce基础 - Apex枚举

作者: Salesforce开发者 | 来源:发表于2022-01-10 22:58 被阅读0次

    枚举

    枚举是一种抽象数据类型,每个值都采用您指定的一组有限标识符中的一个。枚举通常用于定义一组没有数字顺序的可能值。典型的例子包括卡片的花色,或一年中的特定季节。
    尽管每个值对应一个不同的整数值,枚举隐藏了这个实现。隐藏实现可以防止任何可能的误用值来执行算术等。创建枚举后,可以声明该类型的变量、方法参数和返回类型。

    与 Java 不同,枚举类型本身没有构造函数语法。
    

    要定义枚举,请使用 enum 关键字并用花括号括起来每个可能的值。例如,以下代码创建一个名为 Season 的枚举:

    public enum Season {WINTER, SPRING, SUMMER, FALL}
    

    你可以像使用任何其他数据类型一样使用这种新数据类型。例如:

    Season southernHemisphereSeason = Season.WINTER;
    
    public Season getSouthernHemisphereSeason(Season northernHemisphereSeason) {
    
        if (northernHemisphereSeason == Season.SUMMER) return southernHemisphereSeason;
         //...
    }
    

    你还可以将类定义为枚举。在创建枚举类时,不允许使用 class 关键字

    public enum MyEnumClass { X, Y }
    

    定义类型为枚举的变量时,分配给它的任何对象都必须是该枚举类的实例。

    系统内置定义的枚举

    Apex 提供下列类型的系统定义的枚举:

    1. System.StatusCode: 对应于在 WSDL 文档中为所有 API 操作公开的 API 错误代码。
    2. System.XmlTag: 用于从 webservice 方法解析XML 的返回结果列表。
    3. System.ApplicationReadWriteMode: 指示组织在 Salesforce 升级和停机期间是否处于5分钟升级只读模式。
    4. System.LoggingLevel: 与 system.debug 方法一起使用,为所有调试指定日志级别。
    5. System.RoundingMode: 执行数学运算的方法使用此枚举来指定运算的舍入行为。
    6. System.SoapType: 由字段描述结果 getSoapType 方法返回。
    7. System.DisplayType: 由字段描述结果 getType 方法返回。
    8. System.JSONToken: 用于解析 JSON 内容。
    9. ApexPages.Severity: 指定 Visualforce Pages 消息的严重性。
    10. Dom.XmlNodeType: 指定 DOM 文档中的节点类型。

    枚举方法

    所有 Apex 枚举,无论是用户定义的枚举还是系统内置定义的枚举,都有以下这些常见的方法:

    1. values : 此方法将枚举的值作为相同枚举类型的列表返回。
    List<StatusCode> statusCodes = System.StatusCode.values();
    System.debug(LoggingLevel.INFO, '*** statusCodes: ' + statusCodes);
    
    1. valueOf(string enumStr) : 此方法将指定的字符串转换为枚举常量值。如果输入字符串与枚举值不匹配,则引发异常。
    StatusCode statusCodeValue = StatusCode.valueOf('delete_failed');
    System.debug(LoggingLevel.INFO, '*** statusCodeValue: ' + statusCodeValue);
    
    1. name : 以字符串形式返回枚举项的名称。
    String deleteFailedStr = StatusCode.DELETE_FAILED.name();
    System.debug(LoggingLevel.INFO, '*** deleteFailedStr: ' + deleteFailedStr);
    
    1. ordinal : 返回该枚举项在以零开始的枚举值列表中的位置,是Integer类型。
    Integer i = StatusCode.DELETE_FAILED.ordinal();
    System.debug(LoggingLevel.INFO, '*** i: ' + i);
    

    本篇参考:https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_enums.htm
    本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接

    相关文章

      网友评论

        本文标题:Salesforce基础 - Apex枚举

        本文链接:https://www.haomeiwen.com/subject/fidjcrtx.html