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);
廣告