クラスExpression

java.lang.Object
java.beans.Statement
java.beans.Expression

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

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

導入されたバージョン:
1.4
関連項目:
  • コンストラクタのサマリー

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

    修飾子と型
    メソッド
    説明
    void
    executeメソッドは、methodNameプロパティと同じ名前のメソッドを検索し、ターゲットに対してそのメソッドを呼び出します。
    このインスタンスのvalueプロパティがまだ設定されていない場合、このメソッドは引数を使って、ターゲット上の指定されたmethodNameからメソッドを動的に検索し、呼び出します。
    void
    この式の値をvalueに設定します。
    Javaスタイルの構文を使って、この式の値を出力します。

    Statementクラスで宣言されたメソッド

    getArguments, getMethodName, getTarget
    修飾子と型
    メソッド
    説明
    呼び出すメソッドの引数を返します。
    呼び出すメソッドの名前を返します。
    この文のターゲット・オブジェクトを返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • 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 - 指定されたメソッドを呼び出す引数の配列
      関連項目:
    • 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 - 指定されたメソッドを呼び出す引数の配列
      関連項目:
  • メソッドの詳細

    • 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 - 一致するメソッドが見つからない場合
      Exception - 呼び出されたメソッドによってスローされます
      導入されたバージョン:
      1.7
      関連項目:
    • getValue

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

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

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

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

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

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