この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

プリミティブデータ型

Apex は、SOAP API と同じプリミティブデータ型を使用します。すべてのプリミティブデータ型は、値によって渡されます。

すべての Apex 変数は、クラスのメンバー変数であるかメソッド変数であるかに関係なく、null に初期化されます。変数を使用する前に、必ず適切な値に初期化してください。たとえば、Boolean 変数を false に初期化します。

Apex のプリミティブデータ型は次のとおりです。

データ型 説明
Blob 単一のオブジェクトとして保存されるバイナリデータのコレクション。toString メソッドを使用してこのデータ型を String に変換したり、valueOf メソッドを使用して String からこのデータ型に変換したりできます。Blobs は Web サービス引数として受け入れられ、ドキュメントに保存され (ドキュメントの本文は Blob 型)、添付ファイルとして送信されます。詳細は、Crypto クラスを参照してください。
Boolean truefalsenull のみを割り当てられる値。次に例を示します。
1Boolean isWinner = true;
Date 特定の日を示す値。Datetime 値と異なり、Date 値に時間に関する情報は含まれません。Date は必ず、システムの静的メソッドを使用して作成する必要があります。

この Date 値は、単に Date 変数に数値を追加して日付を追加するなどの処理を行うことはできません。Date メソッドを使用する必要があります。

Datetime タイムスタンプなど、特定の日と時刻を示す値。Datetime は必ず、システムの静的メソッドを使用して作成する必要があります。

Datetime 値に対して、単に Datetime 変数に数値を追加して分を追加するなどの処理を行うことはできません。Datetime メソッドを使用する必要があります。

Decimal 小数点を含む数値。Decimal は、任意の精度数です。通貨項目には自動的に Decimal 型が割り当てられます。
scale、つまり小数部分の桁数を明示的に、setScale メソッドを使って Decimal に設定しない場合、scale は Decimal が作成された項目によって決まります。
  • decimal がクエリの一部として作成される場合、スケールはクエリから返される項目のスケールに基づきます。
  • decimal が string から作成される場合、スケールは string の小数点以下の桁の文字数となります。
  • decimal が小数以外の数値から作成される場合、数値を string に変換して小数点以下の桁の文字数を使用することで、スケールを決定します。
Double 小数点を含む 64 ビットの数値。Doubles の最小値は -263、最大値は 263-1 です。次に例を示します。
1Double d=3.14159;

Doubles の科学的記数法 (e) はサポートされていません。

ID 有効な 18 文字の Force.com レコードの識別子。次に例を示します。
1ID id='00300000003T2PGAA0';

ID を 15 文字の値に設定すると、Apex は自動的に 18 文字表記に変換します。無効な ID 値は、実行時例外と共に却下されます。

Integer 小数点を含まない 32 ビットの数値。Integer の最小値は -2,147,483,648、最大値は 2,147,483,647 です。次に例を示します。
1Integer i = 1;
Long 小数点を含まない 64 ビットの数値。Longs の最小値は -263、最大値は 263-1 です。Integer が提供するよりも広範囲の値が必要な場合に、このデータ型を使用します。次に例を示します。
1Long l = 2147483648L;
Object

Apex がサポートする任意のデータ型 — プリミティブデータ型 (整数など)、ユーザ定義カスタムクラス、sObject 汎用型、または sObject 特定の種別 (取引先など)。すべての Apex データ型が Object から継承されます。

基盤となるデータ型に対してより具体的なデータ型を示すオブジェクトをキャストできます。次に例を示します。

1Object obj = 10;
2// Cast the object to an integer.
3Integer i = (Integer)obj;
4System.assertEquals(10, i);

次の例では、組織で事前定義されている MyApexClass という名前のカスタム Apex クラス��あるユーザ定義型にオブジェクトをキャストする方法を示します。

1Object obj = new MyApexClass();
2// Cast the object to the MyApexClass custom type.
3MyApexClass mc = (MyApexClass)obj;
4// Access a method on the user-defined class.
5mc.someClassMethod();
String 単一引用符で囲まれた文字のセット。次に例を示します。
1String s = 'The quick brown fox jumped over the lazy dog.';

文字列サイズ: String には、使用できる文字数の制限はありません。ヒープサイズの制限を使用して、Apex プログラムが過度に大きくならないようにします。

空の文字列と末尾の空白文字: sObject の String 項目値は SOAP API と同じ規則に従います。空白は使用できず (null を除く)、先頭および末尾に空白文字を使用できません。データベースの保存はこれらの規則に従います。

これに対し、Apex の String には null または空白を使用できます。また、先頭と末尾に空白文字を使用できます (メッセージを構築するような場合に使用できます)。

Solution sObject 項目の SolutionNote は、特別なデータ型 String として処理されます。HTML ソリューションを有効にした場合、この項目で使用される HTML タグは、オブジェクトが作成または更新される前に検証されます。無効な HTML が入力されると、エラーが発生します。この項目で使用される JavaScript は、オブジェクトが作成または更新される前に削除されます。次の例では、Solution が詳細ページに表示される場合、SolutionNote 項目には H1 HTML 書式が適用されます。
1trigger t on Solution (before insert) { 
2            Trigger.new[0].SolutionNote ='<h1>hello</h1>'; 
3}
次の例では、Solution が詳細ページに表示される場合、SolutionNote 項目には "こんにちはさようなら" のみが含まれます。
1trigger t2 on Solution (before insert) {
2            Trigger.new[0].SolutionNote =
3                         '<javascript>Hello</javascript>Goodbye';
4}

詳細は、Salesforce オンラインヘルプの「HTML ソリューションの概要」を参照してください。

エスケープシーケンス : Apex のすべての String は SOQL 文字列と同じエスケープシーケンスを使用します (\b (バックスペース)、\t (タブ)、\n (改行)、\f (フォームフィード)、\r (行頭復帰)、\" (二重引用符)、\' (一重引用符)、\\ (バックスラッシュ))。

比較演算子: Java と異なり、Apex の Strings では比較演算子を使用できます (==!=<<=>>=) 。Apex は SOQL 比較セマンティックを使用するため、Strings の結果はコンテキストユーザのロケールに従って照合され、大文字と小文字は区別されません。詳細は、「演算子」を参照してください。

String メソッド: Java と同様、String はさまざまな標準メソッドを使用して処理できます。詳細は、String クラスを参照してください。

項目に割り当てた文字列値が長すぎる場合、API バージョン 15.0 以降を使用して保存 (コンパイル) した Apex クラスとトリガにはランタイムエラーが発生します。

Time 特定の時刻を示す値。Time 値は必ず、システムの静的メソッドを使用して作成する必要があります。Time クラスを参照してください。

また、次の 2 つの非標準のプリミティブデータ型は変数またはメソッドとして使用できませんが、システムの静的メソッドに表示されます。

  • AnyType。valueOf 静的メソッドは AnyType データ型の sObject 項目を標準のプリミティブデータ型に変換します。AnyType は、Force.com プラットフォームデータベース内で、項目履歴管理テーブルの sObject 項目専用に使用されます。
  • Currency。Currency.newInstance 静的メソッドは Currency データ型のリテラルを作成します。このメソッドは SOQL および SOSL の WHERE 句でのみ使用され、sObject 通貨項目の絞り込みを行います。Currency は Apex のその他のデータ型ではインスタンス化できません。

AnyType データ型についての詳細は、Salesforce および Force.com のオブジェクトリファレンスデータ型を参照してください。