- java.lang.Object
-
- java.beans.Statement
-
- 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オブジェクトを作成して、名前、および引数の配列で指定されたメソッドを呼び出します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 voidexecute()executeメソッドは、methodNameプロパティと同じ名前のメソッドを検索し、ターゲットに対してそのメソッドを呼び出します。ObjectgetValue()このインスタンスのvalueプロパティがまだ設定されていない場合、このメソッドは引数を使って、ターゲット上の指定されたmethodNameからメソッドを動的に検索し、呼び出します。voidsetValue(Object value)この式の値をvalueに設定します。StringtoString()Javaスタイルの構文を使って、この式の値を出力します。-
クラス java.lang.Objectで宣言されたメソッド
clone、equals、finalize、getClass、hashCode、notify、notifyAll、wait、wait、wait
-
クラス java.beans.Statementで宣言されたメソッド
getArguments, getMethodName, getTarget
-
-
-
-
コンストラクタの詳細
-
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 Exceptionexecuteメソッドは、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()
-
-