枚举
枚举是一种抽象数据类型,每个值都采用您指定的一组有限标识符中的一个。枚举通常用于定义一组没有数字顺序的可能值。典型的例子包括卡片的花色,或一年中的特定季节。
尽管每个值对应一个不同的整数值,枚举隐藏了这个实现。隐藏实现可以防止任何可能的误用值来执行算术等。创建枚举后,可以声明该类型的变量、方法参数和返回类型。
与 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 提供下列类型的系统定义的枚举:
- System.StatusCode: 对应于在 WSDL 文档中为所有 API 操作公开的 API 错误代码。
- System.XmlTag: 用于从 webservice 方法解析XML 的返回结果列表。
- System.ApplicationReadWriteMode: 指示组织在 Salesforce 升级和停机期间是否处于5分钟升级只读模式。
- System.LoggingLevel: 与 system.debug 方法一起使用,为所有调试指定日志级别。
- System.RoundingMode: 执行数学运算的方法使用此枚举来指定运算的舍入行为。
- System.SoapType: 由字段描述结果 getSoapType 方法返回。
- System.DisplayType: 由字段描述结果 getType 方法返回。
- System.JSONToken: 用于解析 JSON 内容。
- ApexPages.Severity: 指定 Visualforce Pages 消息的严重性。
- Dom.XmlNodeType: 指定 DOM 文档中的节点类型。
枚举方法
所有 Apex 枚举,无论是用户定义的枚举还是系统内置定义的枚举,都有以下这些常见的方法:
- values : 此方法将枚举的值作为相同枚举类型的列表返回。
List<StatusCode> statusCodes = System.StatusCode.values();
System.debug(LoggingLevel.INFO, '*** statusCodes: ' + statusCodes);
- valueOf(string enumStr) : 此方法将指定的字符串转换为枚举常量值。如果输入字符串与枚举值不匹配,则引发异常。
StatusCode statusCodeValue = StatusCode.valueOf('delete_failed');
System.debug(LoggingLevel.INFO, '*** statusCodeValue: ' + statusCodeValue);
- name : 以字符串形式返回枚举项的名称。
String deleteFailedStr = StatusCode.DELETE_FAILED.name();
System.debug(LoggingLevel.INFO, '*** deleteFailedStr: ' + deleteFailedStr);
- 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
本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接
网友评论