Javaによってメソッドからリフレクションオブジェクトを作成する方法
Javaでは、リフレクション機構を使ってオブジェクトのメソッドを入手して実行できます。
まず、ClassオブジェクトのgetMethod()メソッドまたはgetDeclaredMethod()メソッドを使用してメソッドオブジェクトを取得する必要があります。getMethod()メソッドは、公開メソッドを取得するため、一方でgetDeclaredMethod()メソッドは、任意のアクセス可能なメソッドを取得するために使用できます。
その後、メソッドオブジェクトのinvoke()メソッドを使用してメソッドを呼び出し、オブジェクトインスタンス(インスタンスメソッドの場合)や必要なパラメーターを渡します。
以下は単純なサンプルコードです。
import java.lang.reflect.Method;
public class Main {
public static void main(String[] args) throws Exception {
// 获取方法对象
Class<?> cls = MyClass.class;
Method method = cls.getMethod("myMethod", String.class);
// 创建对象实例
MyClass obj = new MyClass();
// 调用方法
String result = (String) method.invoke(obj, "Hello World");
System.out.println(result);
}
}
class MyClass {
public String myMethod(String message) {
return "Message: " + message;
}
}
上のコードを実行すると、次が出力されます。Message: Hello World。
リフレクションによるメソッド呼び出しは、パフォーマンスが低下したり安全性に課題があったりするため注意が必要です。そのため、実務ではリフレクションは慎重に利用し、必要不可欠な場合のみ使用すべきです。