Apex-データ型

データ型を理解する

Apex言語は強く型付けされているため、Apexのすべての変数は特定のデータ型で宣言されます。すべての頂点変数は、最初はnullに初期化されます。開発者は、変数に適切な値が割り当てられていることを確認することを常にお勧めします。それ以外の場合、このような変数を使用すると、nullポインター例外または未処理の例外がスローされます。

Apexは次のデータ型をサポートしています-

  • プリミティブ(整数、倍精度、長整数、日付、日時、文字列、ID、またはブール値)

  • コレクション(リスト、セット、マップ)(第6章で説明)

  • sObject

  • Enums

  • クラス、オブジェクト、およびインターフェイス(第11章、第12章、および第13章で説明します)

この章では、すべてのプリミティブデータ型、sObject、および列挙型について説明します。コレクション、クラス、オブジェクト、およびインターフェイスは、個別に学習する重要なトピックであるため、次の章で説明します。

プリミティブデータ型

このセクションでは、Apexでサポートされているプリミティブデータ型について説明します。

整数

小数点を含まない32ビットの数値。この値の範囲は-2,147,483,648から始まり、最大値は最大2,147,483,647です。

Example

化学処理プラントのバイヤーに出荷する必要のあるバレルの数量を格納する変数を宣言したいと思います。

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

ザ・ System.debug() 関数は変数の値を出力するので、これを使用してデバッグしたり、変数が現在保持している値を知ることができます。

上記のコードを開発者コンソールに貼り付け、[実行]をクリックします。ログが生成されると、変数「barrelNumbers」の値が1000として表示されます。

ブール値

この変数は、true、false、またはnullのいずれかになります。多くの場合、このタイプの変数は、特定の条件が設定されているかどうかを識別するためのプログラミングのフラグとして使用できます。

Example

ブールshipmentDispatchedをtrueに設定する場合は、次のように宣言できます。

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

日付

この変数タイプは日付を示します。これは日付のみを保存でき、時刻は保存できません。日付を時間とともに保存するには、DateTimeの変数に保存する必要があります。

Example

次の例を検討して、Date変数がどのように機能するかを理解してください。

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

長いです

これは、小数点のない64ビットの数値です。これは、整数によって提供される値よりも広い値の範囲が必要な場合に使用されます。

Example

会社の収益を保存する場合は、データ型をLongとして使用します。

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

オブジェクト

これは、Apexでサポートされている任意のデータ型と呼ぶことができます。たとえば、クラス変数はそのクラスのオブジェクトであり、sObjectジェネリック型もオブジェクトであり、Accountなどの同様に特定のオブジェクト型もオブジェクトです。

Example

次の例を検討して、bject変数がどのように機能するかを理解してください。

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

Note −以下に示すように、事前定義されたクラスのオブジェクトを作成することもできます。

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

これは、クラス変数として使用されるクラスオブジェクトです。

ストリング

文字列は、一重引用符で囲まれた文字のセットです。文字数に制限はありません。ここでは、ヒープサイズを使用して文字数を決定します。これにより、Apexプログラムによるリソースの独占が抑制され、リソースが大きくなりすぎないようになります。

Example

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

時間

この変数は、特定の時間を格納するために使用されます。この変数は、常にシステム静的メソッドで宣言する必要があります。

ブロブ

Blobは、オブジェクトとして保存されるバイナリデータのコレクションです。これは、Salesforceの添付ファイルを変数に保存する場合に使用されます。このデータ型は、添付ファイルを単一のオブジェクトに変換します。blobを文字列に変換する場合は、toStringメソッドとvalueOfメソッドを使用できます。

sObject

これはSalesforceの特別なデータ型です。これはSQLのテーブルに似ており、SQLの列に似たフィールドが含まれています。sObjectには、標準とカスタムの2種類があります。

たとえば、Accountは標準のsObjectであり、その他のユーザー定義オブジェクト(作成したCustomerオブジェクトなど)はカスタムsObjectです。

Example

//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);

列挙型

列挙型は、指定された識別子の有限セットの1つの値を格納する抽象データ型です。キーワードEnumを使用して、Enumを定義できます。列挙型は、Salesforceの他のデータ型と同じように使用できます。

Example

次のコードを実行することにより、化合物の可能な名前を宣言できます。

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