了解数据类型
正如我们所研究的,Apex语言是强类型的,所以Apex中的每个变量都将使用特定的数据类型来声明。 所有顶点变量初始化为null。 作为最佳实践,开发人员必须确保它应该被赋予适当的值,否则这样的变量在使用时将抛出空指针异常或任何未处理的期望。
Apex支持以下数据类型:
- Primitive (Integer, Double, Long, Date, Datetime, String, ID, or Boolean) 原始(整数,双精度,长整型,日期,日期时间,字符串,ID或布尔值)
- Collections (Lists, Sets and Maps) (To be covered in Chapter 6) 集合(列表,集合和地图)(将在第6章中讨论)
- sObject
- Enums 枚举
- Classes, Objects and Interfaces (To be covered in Chapter 11, 12 and 13) 类,对象和接口(将在第11,12和13章中讨论)
在本章中,我们将看看所有的原始数据类型,sObjects和枚举。 我们将在下一章讨论集合,类,对象和接口,因为它们是要单独学习的关键主题。
原始数据类型
Integer
整数
任何32位数,不包括任何小数点。 值的范围是-2,147,483,648,最大值为2,147,483,647。
例如:我们要声明一个变量,它将存储需要运往化学加工厂买方的桶的数量。
Integer barrelNumbers = 1000; system.debug(' value of barrelNumbers variable: '+barrelNumbers);
ystem.debug()是打印变量值的函数,以便我们可以使用它来调试或知道变量当前所保存的值。
将上述代码粘贴到开发人员控制台,然后单击执行。 一旦生成日志,它将显示变量“barrelNumbers”的值为1000。
Boolean
布尔值
此变量可以是true,false或null。 很多时候,这种类型的变量可以用作编程中的标志来识别特定条件集或未设置。
例如:如果我们想将shipmentDispatched设置为true,那么它可以声明为:
Boolean shipmentDispatched; shipmentDispatched = true; System.debug('Value of shipmentDispatched '+shipmentDispatched);
Date
日期
这是类型日期的变量。 这只能存储日期而不是时间。 为了保存日期和时间,我们需要将它存储在DateTime的变量中。
例如:
//ShipmentDate can be stored when shipment is dispatched. Date ShipmentDate = date.today(); System.debug('ShipmentDate '+ShipmentDate);
Long
长
这是一个不带小数点的64位数字。 当您需要的范围宽于Integer提供的值时,请使用此数据类型。
例如:如果我们想存储公司收入,那么我们将使用数据类型为Long。
Long companyRevenue = 21474838973344648L; system.debug('companyRevenue'+companyRevenue);
Object
对象
我们可以将其称为Apex支持的任何数据类型。 例如,Class变量可以是该类的对象,sObject通用类型也是一个对象,类似Account这样特定的对象类型也是一个对象。
例如:
Account objAccount = new Account (Name = 'Test Chemical'); system.debug('Account value'+objAccount);
您还可以创建预定义类的对象,如下所示:
//Class Name: MyApexClass MyApexClass classObj = new MyApexClass();
这是将被用作类变量的类对象。 不需要执行这段代码,这只是为了参考。
String
串
字符串是单引号内的任何字符集。 它没有字符数量的限制,但是堆大小将用于确定,以便Apex程序不应该垄断资源,并且不会增长太大。
例如:
String companyName = 'Abc International'; System.debug('Value companyName variable'+companyName);
Time
时间
此变量用于存储特定时间。 此变量应始终使用系统静态方法声明。
Blob
斑点
Blob是作为对象存储的二进制数据的集合。 当我们要将Salesforce中的附件存储到变量中时,将使用此选项。 此数据类型转换单个对象中的附件。 当我们需要将blob转换为字符串时,我们可以使用toString和valueOf方法在需要时将其转换为字符串。
sObject
这是Salesforce中的特殊数据类型。 它类似于sql中的表,并且包含与SQL中的列类似的字段。 有两种类型的sObjects:Standard和Custom。例如,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);