Apex - 數(shù)據(jù)類型

2019-10-26 16:26 更新

了解數(shù)據(jù)類型

正如我們所研究的,Apex語言是強(qiáng)類型的,所以Apex中的每個(gè)變量都將使用特定的數(shù)據(jù)類型來聲明。 所有頂點(diǎn)變量初始化為null。 作為最佳實(shí)踐,開發(fā)人員必須確保它應(yīng)該被賦予適當(dāng)?shù)闹?,否則這樣的變量在使用時(shí)將拋出空指針異?;蛉魏挝刺幚淼钠谕?。


Apex支持以下數(shù)據(jù)類型:

  • Primitive (Integer, Double, Long, Date, Datetime, String, ID, or Boolean) 原始(整數(shù),雙精度,長整型,日期,日期時(shí)間,字符串,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章中討論)

在本章中,我們將看看所有的原始數(shù)據(jù)類型,sObjects和枚舉。 我們將在下一章討論集合,類,對象和接口,因?yàn)樗鼈兪且獑为?dú)學(xué)習(xí)的關(guān)鍵主題。


原始數(shù)據(jù)類型

Integer
整數(shù)

任何32位數(shù),不包括任何小數(shù)點(diǎn)。 值的范圍是-2,147,483,648,最大值為2,147,483,647。


例如:我們要聲明一個(gè)變量,它將存儲(chǔ)需要運(yùn)往化學(xué)加工廠買方的桶的數(shù)量。

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

system.debug()是打印變量值的函數(shù),以便我們可以使用它來調(diào)試或知道變量當(dāng)前所保存的值。

將上述代碼粘貼到開發(fā)人員控制臺(tái),然后單擊執(zhí)行。 一旦生成日志,它將顯示變量“barrelNumbers”的值為1000。


Boolean
布爾值

此變量可以是true,false或null。 很多時(shí)候,這種類型的變量可以用作編程中的標(biāo)志來識(shí)別特定條件集或未設(shè)置。


例如:如果我們想將shipmentDispatched設(shè)置為true,那么它可以聲明為:

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


Date
日期

這是類型日期的變量。 這只能存儲(chǔ)日期而不是時(shí)間。 為了保存日期和時(shí)間,我們需要將它存儲(chǔ)在DateTime的變量中。


例如:

//ShipmentDate can be stored when shipment is dispatched.
Date ShipmentDate = date.today();
System.debug('ShipmentDate '+ShipmentDate);


Long

這是一個(gè)不帶小數(shù)點(diǎn)的64位數(shù)字。 當(dāng)您需要的范圍寬于Integer提供的值時(shí),請使用此數(shù)據(jù)類型。


例如:如果我們想存儲(chǔ)公司收入,那么我們將使用數(shù)據(jù)類型為Long。

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


Object

對象

我們可以將其稱為Apex支持的任何數(shù)據(jù)類型。 例如,Class變量可以是該類的對象,sObject通用類型也是一個(gè)對象,類似Account這樣特定的對象類型也是一個(gè)對象。


例如:

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


您還可以創(chuàng)建預(yù)定義類的對象,如下所示:

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

這是將被用作類變量的類對象。 不需要執(zhí)行這段代碼,這只是為了參考。


String

字符串是單引號(hào)內(nèi)的任何字符集。 它沒有字符數(shù)量的限制,但是堆大小將用于確定,以便Apex程序不應(yīng)該壟斷資源,并且不會(huì)增長太大。


例如:

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


Time
時(shí)間

此變量用于存儲(chǔ)特定時(shí)間。 此變量應(yīng)始終使用系統(tǒng)靜態(tài)方法聲明。


Blob
斑點(diǎn)

Blob是作為對象存儲(chǔ)的二進(jìn)制數(shù)據(jù)的集合。 當(dāng)我們要將Salesforce中的附件存儲(chǔ)到變量中時(shí),將使用此選項(xiàng)。 此數(shù)據(jù)類型轉(zhuǎn)換單個(gè)對象中的附件。 當(dāng)我們需要將blob轉(zhuǎn)換為字符串時(shí),我們可以使用toString和valueOf方法在需要時(shí)將其轉(zhuǎn)換為字符串。


sObject

這是Salesforce中的特殊數(shù)據(jù)類型。 它類似于SQL中的表,并且包含與SQL中的列類似的字段。 有兩種類型的sObjects:Standard和Custom。

例如,Account是一個(gè)標(biāo)準(zhǔn)的sObject和任何其他用戶定義的對象(如我們創(chuàng)建的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

枚舉

枚舉是一種抽象數(shù)據(jù)類型,存儲(chǔ)指定標(biāo)識(shí)符的有限集合的一個(gè)值。 您可以使用關(guān)鍵字Enum定義一個(gè)枚舉。 枚舉可用作Salesforce中的任何其他數(shù)據(jù)類型。


例如:

假設(shè),你想聲明化合物的可能名稱,那么你可以這樣做:

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

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)