public class Statement extends Object
Statementオブジェクトは、"a.setFoo(b)"のように、ターゲットと一連の引数に単一のメソッドが適用されるプリミティブな文を表します。 この例ではターゲットとその引数を示す名前を使用していますが、Statementオブジェクトは名前空間を必要とせず、値自体で構成されます。 Statementオブジェクトは、指定されたメソッドを単純な値のセット(ターゲットと引数の値の配列)として、その環境に関連付けます。 | コンストラクタ | 説明 |
|---|---|
Statement(Object target, String methodName, Object[] arguments) |
指定されたターゲット・オブジェクトの新しい
Statementオブジェクトを作成して、名前、および引数の配列で指定されたメソッドを呼び出します。 |
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
void |
execute() |
executeメソッドは、methodNameプロパティと同じ名前のメソッドを検索し、ターゲットに対してそのメソッドを呼び出します。 |
Object[] |
getArguments() |
呼び出すメソッドの引数を返します。
|
String |
getMethodName() |
呼び出すメソッドの名前を返します。
|
Object |
getTarget() |
この文のターゲット・オブジェクトを返します。
|
String |
toString() |
Javaスタイルの構文を使って、この文の値を出力します。
|
@ConstructorProperties(value={"target","methodName","arguments"}) public Statement(Object target, String methodName, Object[] arguments)
Statementオブジェクトを作成して、名前、および引数の配列で指定されたメソッドを呼び出します。
targetおよびmethodNameの値をnullにしないでください。 そうしない場合、このExpressionの実行を試みると、NullPointerExceptionが発生します。 arguments値がnullの場合は、空の配列がargumentsプロパティの値として使用されます。
target - この文のターゲット・オブジェクトmethodName - 指定されたターゲットに対して呼び出すメソッドの名前arguments - 指定されたメソッドを呼び出す引数の配列public Object getTarget()
nullを返す場合は、execute()メソッドによってNullPointerExceptionがスローされます。 public String getMethodName()
nullを返す場合は、execute()メソッドによってNullPointerExceptionがスローされます。 public Object[] getArguments()
nullを使用できます。 public void execute()
throws Exception
executeメソッドは、methodNameプロパティと同じ名前のメソッドを検索し、ターゲットに対してそのメソッドを呼び出します。 ターゲットのクラスが指定の名前で複数のメソッドを定義している場合、実装は『Java言語仕様(15.11)』に規定されているアルゴリズムを使って、もっとも本質的なメソッドを選択しなければいけません。 コンパイル時の型情報の代わりにターゲットと引数の動的クラスが使用され、Methodクラスそのものと同様に、プリミティブ値とその関連ラッパー・クラス間の変換は内部で処理されます。
次のメソッド型は、特殊なケースとして処理されます。
StatementではなくExpressionとみなされます。
Listインタフェースに定義されているメソッド名「get」および「set」が配列のインスタンスにも適用されて、Arrayクラスにある同じ名前の静的メソッドにマッピングされます。
NullPointerException - targetまたはmethodNameプロパティの値がnullの場合NoSuchMethodException - 一致するメソッドが見つからない場合SecurityException - セキュリティ・マネージャが存在し、それがメソッドの呼出しを拒否する場合Exception - 呼び出されたメソッドによってスローされますMethod バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。