- Apex编程教程
- Apex - 首页
- Apex - 概述
- Apex - 环境
- Apex - 示例
- Apex - 数据类型
- Apex - 变量
- Apex - 字符串
- Apex - 数组
- Apex - 常量
- Apex - 决策
- Apex - 循环
- Apex - 集合
- Apex - 类
- Apex - 方法
- Apex - 对象
- Apex - 接口
- Apex - DML
- Apex - 数据库方法
- Apex - SOSL
- Apex - SOQL
- Apex - 安全性
- Apex - 调用
- Apex - 触发器
- Apex - 触发器设计模式
- Apex - 限制
- Apex - 批处理
- Apex - 调试
- Apex - 测试
- Apex - 部署
- Apex有用资源
- Apex - 快速指南
- Apex - 资源
- Apex - 讨论
Apex - 数据类型
理解数据类型
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);
日期
此变量类型表示日期。这只能存储日期,不能存储时间。要保存日期和时间,我们需要将其存储在DateTime类型的变量中。
示例
请考虑以下示例以了解Date变量的工作方式。
//ShipmentDate can be stored when shipment is dispatched. Date ShipmentDate = date.today(); System.debug('ShipmentDate '+ShipmentDate);
长整数
这是一个64位数字,没有小数点。当我们需要比整数提供的范围更广的值时,可以使用它。
示例
如果要存储公司收入,则我们将使用Long数据类型。
Long companyRevenue = 21474838973344648L; system.debug('companyRevenue'+companyRevenue);
对象
我们可以将其称为Apex支持的任何数据类型。例如,类变量可以是该类的对象,sObject通用类型也是一个对象,类似地,特定对象类型(如帐户)也是一个对象。
示例
请考虑以下示例以了解对象变量的工作方式。
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);
时间
此变量用于存储特定时间。此变量应始终使用系统静态方法声明。
Blob
Blob是作为对象存储的二进制数据的集合。当我们想要将Salesforce中的附件存储到变量中时,将使用它。此数据类型将附件转换为单个对象。如果要将blob转换为字符串,则可以使用toString和valueOf方法。
sObject
这是Salesforce中的特殊数据类型。它类似于SQL中的表,并包含类似于SQL中列的字段。sObject有两种类型:标准和自定义。
例如,帐户是一个标准sObject,任何其他用户定义的对象(例如我们创建的客户对象)都是自定义sObject。
示例
//Declaring an sObject variable of type Account Account objAccount = new Account(); //Assignment of values to fields of sObjects objAccount.Name = 'ABC Customer'; objAccount.Description = 'Test Account'; System.debug('objAccount variable value'+objAccount); //Declaring an sObject for custom object APEX_Invoice_c APEX_Customer_c objCustomer = new APEX_Customer_c(); //Assigning value to fields objCustomer.APEX_Customer_Decscription_c = 'Test Customer'; System.debug('value objCustomer'+objCustomer);
枚举
枚举是一种抽象数据类型,它存储指定标识符的有限集合中的一个值。可以使用关键字Enum定义枚举。枚举可以用作Salesforce中的任何其他数据类型。
示例
您可以通过执行以下代码来声明化学化合物的可能名称:
//Declaring enum for Chemical Compounds public enum Compounds {HCL, H2SO4, NACL, HG} Compounds objC = Compounds.HCL; System.debug('objC value: '+objC);