Newer Version Available
プリミティブデータ型
すべての Apex 変数は、クラスのメンバー変数であるかメソッド変数であるかに関係なく、null に初期化されます。変数を使用する前に、必ず適切な値に初期化してください。たとえば、Boolean 変数を false に初期化します。
Apex のプリミティブデータ型は次のとおりです。
| データ型 | 説明 |
|---|---|
| Blob | 単一のオブジェクトとして保存されるバイナリデータのコレクション。toString メソッドを使用してこのデータ型を String に変換したり、valueOf メソッドを使用して String をこのデータ型に変換したりできます。Blob は Web サービス引数として受け入れられ、ドキュメントに保存され (ドキュメントの本文は Blob 型)、添付ファイルとして送信されます。詳細は、「Crypto クラス」を参照してください。 |
| Boolean |
true、false、null のみを割り当てられる値。次に例を示します。 |
| Date | 特定の日を示す値。Datetime 値と異なり、Date 値に時間に関する情報は含まれません。常にシステムの静的メソッドで日付値を作成します。 Date 値に Integer 値を加算または減算して、Date 値を返すことができます。Date 値で機能する演算関数は、Integer 値の加算と減算のみです。2 つ以上の Date 値を含む演算関数は実行できません。代わりに、Date メソッドを使用します。 タイムスタンプが付加されていない日付を取得するには、String.valueOf() メソッドを使用します。Data 値に対して暗黙的な文字列変換を使用すると、タイムスタンプが付加された日付が生成されます。 |
| Datetime | タイムスタンプなど、特定の日と時刻を示す値。常にシステムの静的メソッドで日時値を作成します。 Datetime 値に Integer 値または Double 値を加算または減算して、Date 値を返すことができます。Datetime 値で機能する演算関数は、Integer 値および Double 値の加算と減算のみです。2 つ以上の Datetime 値を含む演算関数は実行できません。代わりに、Datetime メソッドを使用します。 |
| Decimal | 小数点を含む数値。Decimal は、任意の精度数です。通貨項目には自動的に Decimal 型が割り当てられます。 Decimal に小数点以下の桁数を明示的に設定しない場合、Decimal が作成された項目によって Decimal のスケールが決まります。スケールとは、小数点以下の桁数です。Decimal のスケールは、setScale メソッドを使用して設定します。
|
| Double | 小数点を含む 64 ビットの数値。Doubles の最小値は -263、最大値は 263-1 です。次に例を示します。Double の科学的記数法 (e) はサポートされていません。 |
| ID | 有効な 18 文字の Lightning プラットフォームレコードの識別子。次に例を示します。ID を 15 文字の値に設定すると、Apex がその値を 18 文字表記に変換します。無効な ID 値は、実行時例外と共に却下されます。 |
| Integer | 小数点を含まない 32 ビットの数値。Integer の最小値は -2,147,483,648、最大値は 2,147,483,647 です。次に例を示します。 |
| Long | 小数点を含まない 64 ビットの数値。Long の最小値は -263、最大値は 263-1 です。Integer が提供する範囲よりも広範の値が必要な場合に、このデータ型を使用します。次に例を示します。 |
| Object |
Apex がサポートする任意のデータ型。Apex は、プリミティブデータ型 (Integer など)、ユーザー定義カスタムクラス、sObject 汎用型、または sObject 固有の種別 (取引先など) をサポートします。すべての Apex データ型が Object から継承されます。 基盤となるデータ型に対してより具体的なデータ型を示すオブジェクトをキャストできます。次に例を示します。 次の例では、組織で事前定義されている MyApexClass という名前のカスタム Apex クラスであるユーザー定義型にオブジェクトをキャストする方法を示します。 |
| String | 単一引用符で囲まれた文字のセット。次に例を示します。文字列サイズ: String には、使用できる文字数の制限はありません。ヒープサイズの制限を使用して、Apex プログラムが過度に大きくならないようにします。 空の文字列と末尾の空白文字: sObject の String 項目値は SOAP API と同じ規則に従います。空白は使用できず (null を除く)、先頭および末尾に空白文字を使用できません。データベースの保存はこれらの規則に従います。 これに対し、Apex の String には null または空白を使用できます。また、先頭と末尾に空白文字を使用できます (メッセージを構築する場合に使用できます)。 Solution sObject 項目の SolutionNote は、特別なデータ型 String として処理されます。HTML ソリューションを有効にした場合、この項目で使用される HTML タグは、オブジェクトが作成または更新される前に検証されます。無効な HTML が入力されると、エラーが発生します。この項目で使用される JavaScript は、オブジェクトが作成または更新される前に削除されます。次の例では、Solution が詳細ページに表示される場合、SolutionNote 項目には H1 HTML 書式が適用されます。
次の例では、Solution が詳細ページに表示される場合、SolutionNote 項目には「こんにちはさようなら」のみが含まれます。
詳細は、Salesforce ヘルプの「HTML ソリューションの���要」を参照してください。 エスケープシーケンス: Apex のすべての String は、\b (バックスペース)、\t (タブ)、\n (改行)、\f (フォームフィード)、\r (行頭復帰)、\" (二重引用符)、\' (一重引用符)、\\ (バックスラッシュ) など、SOQL 文字列と同じエスケープシーケンスを使用します。 比較演算子: Java とは異なり、Apex の String では比較演算子 (==、!=、<、<=、>、>=) を使用できます。Apex は SOQL 比較セマンティックを使用するため、String の結果はコンテキストユーザーのロケールに従って照合され、大文字と小文字は区別されません。詳細は、「式の演算子」を参照してください。 String メソッド: Java と同様、String はいくつかの標準メソッドを使用して処理できます。詳細は、「String クラス」を参照してください。 項目に割り当てた文字列値が長すぎる場合、API バージョン 15.0 以降を使用して保存 (コンパイル) した Apex クラスとトリガーにはランタイムエラーが発生します。 |
| Time | 特定の時刻を示す値。常にシステムの静的メソッドで時間値を作成します。「Time クラス」を参照してください。 |
また、次の 2 つの非標準のプリミティブデータ型は変数またはメソッドとして使用できませんが、システムの静的メソッドに表示されます。
- AnyType。valueOf 静的メソッドは AnyType データ型の sObject 項目を標準のプリミティブデータ型に変換します。AnyType は、Lightning プラットフォームデータベース内で、項目履歴管理テーブルの sObject 項目専用に使用されます。
- Currency。Currency.newInstance 静的メソッドは Currency データ型のリテラルを作成します。このメソッドは SOQL および SOSL の WHERE 句でのみ使用され、sObject 通貨項目の絞り込みを行います。Currency は Apex のその他のデータ型ではインスタンス化できません。
AnyType データ型についての詳細は、『Salesforce のオブジェクトリファレンス』の「データ型」を参照してください。
バージョン管理動作の変更
API バージョン 16 (Summer ’09) 以降では、Apex は、通貨などの特定の型で高精度 Decimal データ型を使用します。