Apex-data-types
Apex-データ型
データ型を理解する
Apex言語は厳密に型指定されているため、Apexのすべての変数は特定のデータ型で宣言されます。 すべての頂点変数は、最初はnullに初期化されます。 開発者は、適切な値が変数に割り当てられていることを確認することを常にお勧めします。 それ以外の場合、このような変数を使用すると、nullポインター例外または未処理の例外がスローされます。
Apexは次のデータ型をサポートしています-
- プリミティブ(整数、倍精度、長整数、日付、日時、文字列、ID、またはブール)
- コレクション(リスト、セット、およびマップ)(第6章で説明します)
- sObject
- 列挙型
- クラス、オブジェクト、インターフェイス(第11章、12章、13章で説明します)
この章では、すべてのプリミティブデータ型、sObject、およびEnumを見ていきます。 コレクション、クラス、オブジェクト、インターフェースは、個別に学ぶべき重要なトピックなので、今後の章で検討します。
プリミティブデータ型
このセクションでは、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);
Date
この変数タイプは日付を示します。 これは、日付ではなく時刻のみを保存できます。 時間とともに日付を保存するには、DateTimeの変数に保存する必要があります。
例
Date変数の動作を理解するには、次の例を検討してください。
//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);
対象
これは、Apexでサポートされている任意のデータ型として参照できます。 たとえば、クラス変数はそのクラスのオブジェクトにすることができ、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);
Time
この変数は、特定の時間を格納するために使用されます。 この変数は、常にシステムの静的メソッドで宣言する必要があります。
Blob
Blobは、オブジェクトとして保存されるバイナリデータのコレクションです。 これは、セールスフォースの添付ファイルを変数に保存するときに使用されます。 このデータ型は、添付ファイルを単一のオブジェクトに変換します。 BLOBを文字列に変換する場合は、同じためにtoStringメソッドとvalueOfメソッドを使用できます。
sObject
これはSalesforceの特別なデータ型です。 SQLのテーブルに似ており、SQLの列に似たフィールドが含まれています。 sObjectには、標準とカスタムの2つのタイプがあります。
たとえば、アカウントは標準のsObjectであり、他のユーザー定義オブジェクト(作成したCustomerオブジェクトなど)はカスタム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は、指定された識別子の有限セットの1つの値を格納する抽象データ型です。 キーワードEnumを使用して、Enumを定義できます。 Enumは、Salesforceの他のデータ型として使用できます。
例
あなたは、次のコードを実行することにより、化学化合物の可能な名前を宣言することができます-
//Declaring enum for Chemical Compounds
public enum Compounds {HCL, H2SO4, NACL, HG}
Compounds objC = Compounds.HCL;
System.debug('objC value: '+objC);