モジュール java.desktop
パッケージ java.beans

クラスExpression


  • public class Expression
    extends Statement
    Expressionオブジェクトは、"a.getFoo()"のように、ターゲットと一連の引数に単一のメソッドが適用されて、結果が返されるプリミティブな式を表します。

    Expressionオブジェクトは、スーパー・クラスのプロパティだけでなく、 (この式の評価時に返されるオブジェクト)も提供します。 通常、この戻り値は呼出し元から提供されるのではなく、メソッドを動的に検索し、初めてgetValueを呼び出すときにそのメソッドを呼び出すことによって計算されます。

    導入されたバージョン:
    1.4
    関連項目:
    getValue(), setValue(java.lang.Object)
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      Expression​(Object value, Object target, String methodName, Object[] arguments)
      指定されたターゲット・オブジェクトの指定された値を使って新しいExpressionオブジェクトを作成して、名前、および引数の配列で指定されたメソッドを呼び出します。
      Expression​(Object target, String methodName, Object[] arguments)
      指定されたターゲット・オブジェクトの新しいExpressionオブジェクトを作成して、名前、および引数の配列で指定されたメソッドを呼び出します。
    • コンストラクタの詳細

      • Expression

        @ConstructorProperties({"target","methodName","arguments"})
        public Expression​(Object target,
                          String methodName,
                          Object[] arguments)
        指定されたターゲット・オブジェクトの新しいExpressionオブジェクトを作成して、名前、および引数の配列で指定されたメソッドを呼び出します。

        targetおよびmethodNameの値をnullにしないでください。 そうしない場合、このExpressionの実行を試みると、NullPointerExceptionが発生します。 arguments値がnullの場合は、空の配列がargumentsプロパティの値として使用されます。

        パラメータ:
        target - この式のターゲット・オブジェクト
        methodName - 指定されたターゲットに対して呼び出すメソッドの名前
        arguments - 指定されたメソッドを呼び出す引数の配列
        関連項目:
        getValue()
      • Expression

        public Expression​(Object value,
                          Object target,
                          String methodName,
                          Object[] arguments)
        指定されたターゲット・オブジェクトの指定された値を使って新しいExpressionオブジェクトを作成して、名前、および引数の配列で指定されたメソッドを呼び出します。 value値がvalueプロパティの値として使用されるため、getValue()メソッドはこのExpressionを実行せずにそれを返します。

        targetおよびmethodNameの値をnullにしないでください。 そうしない場合、このExpressionの実行を試みると、NullPointerExceptionが発生します。 arguments値がnullの場合は、空の配列がargumentsプロパティの値として使用されます。

        パラメータ:
        value - この式の値
        target - この式のターゲット・オブジェクト
        methodName - 指定されたターゲットに対して呼び出すメソッドの名前
        arguments - 指定されたメソッドを呼び出す引数の配列
        関連項目:
        setValue(java.lang.Object)
    • メソッドの詳細

      • execute

        public void execute()
                     throws Exception
        executeメソッドは、methodNameプロパティと同じ名前のメソッドを検索し、ターゲットに対してそのメソッドを呼び出します。 ターゲットのクラスが指定の名前で複数のメソッドを定義している場合、実装は『Java言語仕様(15.11)』に規定されているアルゴリズムを使って、もっとも本質的なメソッドを選択しなければいけません。 コンパイル時の型情報の代わりにターゲットと引数の動的クラスが使用され、Methodクラスそのものと同様に、プリミティブ値とその関連ラッパー・クラス間の変換は内部で処理されます。

        次のメソッド型は、特殊なケースとして処理されます。

        • クラス・オブジェクトをターゲットとして使用することにより静的メソッドが呼び出される。
        • 予約されたメソッド名「new」を使用し、あたかもすべてのクラスが静的な「new」メソッドを定義しているかのようにクラスのコンストラクタを呼び出す。 通常、コンストラクタの呼出しは値を返すため、StatementではなくExpressionとみなされます。
        • Listインタフェースに定義されているメソッド名getおよびsetが配列のインスタンスにも適用されて、Arrayクラスにある同じ名前の静的メソッドにマッピングされます。

        呼び出されたメソッドが正常に完了した場合は、そのメソッドが返した値がvalueプロパティにコピーされます。 基本となるメソッドの戻り型がvoidの場合は、valueプロパティにnullが設定されます。

        オーバーライド:
        execute、クラス: Statement
        例外:
        NullPointerException - targetまたはmethodNameプロパティの値がnullの場合
        NoSuchMethodException - 一致するメソッドが見つからない場合
        SecurityException - セキュリティ・マネージャが存在し、それがメソッドの呼出しを拒否する場合
        Exception - 呼び出されたメソッドによってスローされます
        導入されたバージョン:
        1.7
        関連項目:
        Method
      • getValue

        public Object getValue()
                        throws Exception
        このインスタンスのvalueプロパティがまだ設定されていない場合、このメソッドは引数を使って、ターゲット上の指定されたmethodNameからメソッドを動的に検索し、呼び出します。 このメソッド呼出しの結果は、この式のvalueプロパティにコピーされたあと、getValueの結果として返されます。 valueプロパティがすでに設定されている場合は、setValueの呼び出しか、以前のgetValueの呼出しにより、valueプロパティが返されます。この場合、メソッドの検索や呼出しは不要です。

        デフォルトでは、Expressionのvalueプロパティは非公開の一意の値(null以外)になり、メソッドがまだ呼び出されていないことを内部的に示します。 戻り値nullは、その他の値と同様にこのデフォルト値を置き換えます。このため、式の評価回数が2回以上になることはありません。

        ターゲットおよび引数の動的な型によるメソッドの選択方法の詳細については、executeメソッドを参照してください。

        戻り値:
        このメソッドを引数に適用した結果。
        例外:
        Exception - 指定されたmethodNameを持つメソッドが例外をスローした場合
        関連項目:
        Statement.execute(), setValue(java.lang.Object)
      • setValue

        public void setValue​(Object value)
        この式の値をvalueに設定します。 この値はgetValueメソッドから返されます。このとき、この式に関連付けられているメソッドが呼び出されることはありません。
        パラメータ:
        value - この式の値。
        関連項目:
        getValue()
      • toString

        public String toString()
        Javaスタイルの構文を使って、この式の値を出力します。
        オーバーライド:
        toString、クラス: Statement
        戻り値:
        このオブジェクトの文字列表現。