リフレクション メカニズムにより、プログラムは実行時にメソッドを呼び出すことができます。手順は次のとおりです。クラス オブジェクトを取得し、メソッド オブジェクトを取得します。メソッドを呼び出して、オブジェクト インスタンスとパラメータを渡します。リフレクションを使用して、Employee クラスの getName() メソッドを呼び出し、「John Doe」を返します。
#Java リフレクション メカニズムはメソッドを呼び出します
Java リフレクション メカニズムを使用すると、プログラムは実行時にクラス情報と動作を取得および変更できます。フレームワーク、テスト、デバッグ ツールで広く使用されています。リフレクション呼び出しメソッドを使用する
リフレクション呼び出しメソッドは、次の手順で使用できます。 を使用して、クラスの Class オブジェクトを取得します。
または
getMethods() を使用して、メソッドの Method オブジェクトを取得します。
メソッドを使用してメソッドを呼び出し、オブジェクト インスタンスとパラメーター (存在する場合) を渡します。
構文
Method method = Class.forName("ClassName").getMethod("methodName", parameterTypes); Object result = method.invoke(objectInstance, parameters);ここで:
は呼び出されるクラス名です。
は、呼び出されるメソッドの名前です。
は、メソッド パラメーターの型の配列です。
は、メソッドが呼び出されるオブジェクト インスタンスです (メソッドが非静的メソッドの場合)。
は、メソッドに渡されるパラメータの配列です。
実際的なケース
次のメソッドを持つEmployee クラスがあるとします。
public class Employee { public String getName() { return "John Doe"; } }さて、リフレクション メカニズムを使用して、
getName() メソッドを呼び出します。
Class<?> employeeClass = Class.forName("Employee"); Method getNameMethod = employeeClass.getMethod("getName"); String name = (String) getNameMethod.invoke(new Employee()); System.out.println(name); // 输出:John Doeこの例では、最初に
Employee クラスの Class オブジェクトを取得します。次に、
getName() メソッドの Method オブジェクトを取得します。最後に、
Employee オブジェクトのインスタンスを作成し、リフレクションを使用して
getName() メソッドを呼び出します。
以上がJava リフレクション メカニズムはどのようにメソッドを呼び出すのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。