Apex - 数据类型

了解数据类型

Apex 语言是强类型的,因此 Apex 中的每个变量都将使用特定的数据类型进行声明。 所有顶点变量最初都初始化为 null。 始终建议开发人员确保为变量分配正确的值。 否则,使用此类变量时,将引发空指针异常或任何未处理的异常。

Apex 支持以下数据类型 −

  • 基本类型(整数、双精度、长整型、日期、日期时间、字符串、ID 或布尔值)

  • 集合(列表、集合和映射)(将在第 6 章中介绍)

  • sObject

  • 枚举

  • 类、对象和接口(将在第 11、12 和 13 章中介绍)

在本章中,我们将了解所有原始数据类型、sObject 和枚举。 我们将在接下来的章节中讨论集合、类、对象和接口,因为它们是需要单独学习的关键主题。

原始数据类型

在本节中,我们将讨论 Apex 支持的原始数据类型。

整数

不包含任何小数点的 32 位数字。 其值范围从 -2,147,483,648 开始,最大值可达 2,147,483,647。

示例

我们想要声明一个变量,用于存储需要运送给化学加工厂买家的桶的数量。

Integer barrelNumbers = 1000;
system.debug(' value of barrelNumbers variable: '+barrelNumbers);

System.debug()函数打印变量的值,以便我们可以使用它来调试或了解变量当前保存的值。

将上述代码粘贴到开发者控制台,然后单击"执行"。 一旦生成日志,它将显示变量"barrelNumbers"的值为1000。

布尔值

该变量可以为 true、false 或 null。 很多时候,这种类型的变量可以在编程中用作标志来识别是否设置了特定条件。

示例

如果布尔型shipmentDispatched要设置为true,那么它可以声明为 −

Boolean shipmentDispatched;
shipmentDispatched = true;
System.debug('Value of shipmentDispatched '+shipmentDispatched);

Date

该变量类型表示日期。 这只能存储日期而不能存储时间。 为了保存日期和时间,我们需要将其存储在 DateTime 变量中。

示例

考虑以下示例以了解日期变量的工作原理。

//发货时可以存储ShipmentDate。
Date ShipmentDate = date.today();
System.debug('ShipmentDate '+ShipmentDate);

Long

这是一个没有小数点的 64 位数字。 当我们需要比 Integer 提供的值范围更宽的值时,可以使用此方法。

示例

如果要存储公司收入,那么我们将使用Long类型的数据。

Long companyRevenue = 21474838973344648L;
system.debug('companyRevenue'+companyRevenue);

对象

我们可以将其称为 Apex 支持的任何数据类型。 例如,Class 变量可以是该类的对象,sObject 通用类型也是一个对象,类似的特定对象类型(如 Account)也是一个对象。

示例

考虑以下示例以了解对象变量的工作原理。

Account objAccount = new Account (Name = 'Test Chemical');
system.debug('Account value'+objAccount);

注意 − 您也可以创建预定义类的对象,如下所示 −

//Class Name: MyApexClass
MyApexClass classObj = new MyApexClass();

这是将用作类变量的类对象。

字符串

字符串是单引号内的任何字符集。 它对字符数没有任何限制。 这里,堆大小将用于确定字符数。 这限制了Apex计划对资源的垄断,也保证了它不会变得太大。

示例

String companyName = 'Abc International';
System.debug('Value companyName variable'+companyName);

Time

该变量用于存储特定时间。 应始终使用系统静态方法声明此变量。

Blob

Blob 是作为对象存储的二进制数据的集合。 当我们想要将 salesforce 中的附件存储到变量中时,将使用此方法。 此数据类型将附件转换为单个对象。 如果要将 blob 转换为字符串,那么我们可以使用 toString 和 valueOf 方法进行相同的操作。

sObject

这是 Salesforce 中的特殊数据类型。 它类似于 SQL 中的表,并且包含类似于 SQL 中的列的字段。 sObject 有两种类型 - 标准和自定义。

例如,Account 是标准 sObject,任何其他用户定义的对象(例如我们创建的 Customer 对象)都是自定义 sObject。

示例

//声明一个Account类型的sObject变量
Account objAccount = new Account();

//给sObjects的字段赋值
objAccount.Name = 'ABC Customer';
objAccount.Description = 'Test Account';
System.debug('objAccount variable value'+objAccount);

//为自定义对象APEX_Invoice_c声明一个sObject
APEX_Customer_c objCustomer = new APEX_Customer_c();

//给字段赋值
objCustomer.APEX_Customer_Decscription_c = 'Test Customer';
System.debug('value objCustomer'+objCustomer);

枚举

枚举是一种抽象数据类型,它存储一组有限的指定标识符的一个值。 您可以使用关键字 Enum 来定义 Enum。 枚举可以用作 Salesforce 中的任何其他数据类型。

示例

您可以通过执行以下代码来声明化学化合物的可能名称 −

//Declaring enum for Chemical Compounds
public enum Compounds {HCL, H2SO4, NACL, HG}
Compounds objC = Compounds.HCL;
System.debug('objC value: '+objC);