📜  salesforce apex 循环遍历对象的字段 (1)

📅  最后修改于: 2023-12-03 15:05:00.279000             🧑  作者: Mango

Salesforce Apex 循环遍历对象的字段

在 Salesforce 的 Apex 编程中,我们经常需要对对象进行循环遍历,并访问其中的字段值。本文将介绍几种常见的方法,帮助程序员更加方便地处理对象字段。

用法一:使用 SObject 对象的 get 方法

SObject 对象是 Salesforce 对象的基础类,我们可以通过使用它的 get 方法,来访问对象的字段值。示例代码如下:

// 假设我们需要访问 Account 对象的 Name、Industry、Revenue 字段
List<Account> accounts = [SELECT Name, Industry, Revenue FROM Account];

for (Account account : accounts) {
    String name = (String) account.get('Name');
    String industry = (String) account.get('Industry');
    Decimal revenue = (Decimal) account.get('Revenue');

    // 对字段值进行处理,比如打印到控制台
    System.debug('Name: ' + name);
    System.debug('Industry: ' + industry);
    System.debug('Revenue: ' + revenue);
}

需要注意的是,get 方法返回的是 Object 类型,需要进行强制类型转换。

用法二:使用 SObject 对象的字段 API 名称

除了通过 get 方法获取字段值以外,我们还可以使用 SObject 对象的字段 API 名称来访问字段值。示例代码如下:

// 假设我们需要访问 Account 对象的 Name、Industry、Revenue 字段
List<Account> accounts = [SELECT Name, Industry, Revenue FROM Account];

for (Account account : accounts) {
    String name = account.Name;
    String industry = account.Industry;
    Decimal revenue = account.Revenue;

    // 对字段值进行处理,比如打印到控制台
    System.debug('Name: ' + name);
    System.debug('Industry: ' + industry);
    System.debug('Revenue: ' + revenue);
}

这种方法更加简洁,但需要注意的是,使用字段 API 名称只能访问已经在查询中选择的字段。

用法三:使用 SObjectDescribe 类

SObjectDescribe 类可以帮助我们获取对象的详细信息,包括字段信息。我们可以使用其 get字段方法来获取字段值。示例代码如下:

// 获取 Account 对象的描述信息
Schema.DescribeSObjectResult describe = Account.sObjectType.getDescribe();

// 获取 Account 对象的所有字段信息
Map<String, Schema.SObjectField> fields = describe.fields.getMap();

// 假设我们需要访问 Account 对象的 Name、Industry、Revenue 字段
List<Account> accounts = [SELECT Name, Industry, Revenue FROM Account];

for (Account account : accounts) {
    String name = (String) account.get(fields.get('Name').getDescribe().getName());
    String industry = (String) account.get(fields.get('Industry').getDescribe().getName());
    Decimal revenue = (Decimal) account.get(fields.get('Revenue').getDescribe().getName());

    // 对字段值进行处理,比如打印到控制台
    System.debug('Name: ' + name);
    System.debug('Industry: ' + industry);
    System.debug('Revenue: ' + revenue);
}

需要注意的是,这种方法可以访问所有字段,不受查询中选择的字段的限制。

以上就是 Salesforce Apex 循环遍历对象字段的一些常见方法,开发者可以根据实际情况选择适合自己的方法来处理对象字段。