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

名前空間、クラス、変数名の優先順位

ローカル変数、クラス名、名前空間が同じ識別子を使用することは仮定上可能であるため、Apex パーサーは次のように name1.name2.[...].nameN 形式の式を評価します。
  1. パーサーは、まず name1name2 から nameN を項目参照として持つローカル変数であると仮定します。
  2. 最初の仮定が true でない場合、パーサーは name1 がクラス名であり、name2name3 から nameN を項目参照として持つ静的変数名であると仮定します。
  3. 2 つ目の仮定が true でない場合、パーサーは name1 が名前空間名、name2 がクラス名、name3 が静的変数名であり、name4 から nameN が項目参照であると仮定します。
  4. 3 つ目の仮定も true でない場合は、パーサーはエラーを返します。
式が 1 組の括弧で終了する場合 (name1.name2.[...].nameM.nameN() など)、Apex パーサーは式を次のように評価します。
  1. パーサーは、まず name1name2 から nameM を項目参照として持つローカル変数、nameN がメソッド呼び出しであると仮定します。
  2. 最初の仮定が true でない場合、次の処理を行います。
    • 式に識別子が 2 つしか含まれていない場合 (name1.name2())、パーサーは name1 がクラス名で name2 がメソッド呼び出しであると仮定します。
    • 式に識別子が 3 つ以上含まれている場合、パーサーは name1 がクラス名、name2name3 から nameM を項目参照として持つ静的変数名、nameN がメソッド呼び出しであると仮定します。
  3. 2 つ目の仮定が true でない場合、パーサーは name1 が名前空間名、name2 がクラス名、name3 が静的変数名であり、name4 から nameM が項目参照、nameN がメソッド呼び出しであると仮定します。
  4. 3 つ目の仮定も true でない場合は、パーサーはエラーを返します。

ただし、クラス変数については Apex はメンバー変数の参照にドット表記を使う場合もあります。それらのメンバー変数は他のクラスインスタンスを参照することも、また、項目名への参照 (外部キーのアクセスのためなど) に独自のドット表記ルールを持つ sObject を参照することもあります。

式に sObject 項目を入力すると、式の残りは sObject ドメインにとどまります。つまり、sObject 項目は Apex 式を再度参照することはできません。

たとえば、次のクラスがあるとします。

その場合、次の式はすべて有効です。