📅  最后修改于: 2020-11-05 03:08:37             🧑  作者: Mango
Apex语言是强类型的,因此Apex中的每个变量都将使用特定的数据类型进行声明。最初,所有顶点变量都初始化为null。始终建议开发人员确保将正确的值分配给变量。否则,使用此类变量时,将抛出空指针异常或任何未处理的异常。
Apex支持以下数据类型-
原始(整数,双精度,长整型,日期,日期时间,字符串,ID或布尔值)
集合(列表,集合和地图)(将在第6章中介绍)
对象
枚举
类,对象和接口(将在第11、12和13章中介绍)
在本章中,我们将研究所有原始数据类型,sObjects和Enums。我们将在接下来的章节中介绍集合,类,对象和接口,因为它们是需要单独学习的关键主题。
在本节中,我们将讨论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。很多时候,这种类型的变量可以在编程中用作标志,以识别是否设置了特定条件。
例
如果将布尔值shipsDispatched设置为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位数字。当我们需要的值范围比Integer提供的值宽时,将使用此方法。
例
如果要存储公司收入,那么我们将使用数据类型为Long。
Long companyRevenue = 21474838973344648L;
system.debug('companyRevenue'+companyRevenue);
我们可以将其称为Apex支持的任何数据类型。例如,Class变量可以是该类的对象,并且sObject泛型类型也是对象,类似地,特定的对象类型(如Account)也是对象。
例
考虑以下示例,以了解bject变量的工作方式。
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是存储为对象的二进制数据的集合。当我们要将附件存储在salesforce中时,将使用此变量。此数据类型将附件转换为单个对象。如果将blob转换为字符串,则可以使用toString和valueOf方法。
这是Salesforce中的特殊数据类型。它类似于SQL中的表,并且包含与SQL中的列相似的字段。 sObject有两种类型-标准和自定义。
例如,Account是一个标准的sObject,其他任何用户定义的对象(例如我们创建的Customer对象)都是一个Custom 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定义一个Enum。枚举可以用作Salesforce中的任何其他数据类型。
例
您可以通过执行以下代码来声明化合物的可能名称-
//Declaring enum for Chemical Compounds
public enum Compounds {HCL, H2SO4, NACL, HG}
Compounds objC = Compounds.HCL;
System.debug('objC value: '+objC);