読者です 読者をやめる 読者になる 読者になる

Javaで現在実行中のメソッドの情報を取得する方法

Javaで実行中のメソッドの情報は、旧来は次のような方法が用いられていた。

String methodName = new Throwable().getStackTrace()[0].getMethodName()

しかしこれはパフォーマンス的にはあまりいい方法ではないし、リフレクションのMethodオブジェクトではないのでその他の情報が取れない。Java 1.5からは次の方法で現在実行中のメソッドのMethodオブジェクトが取得できる。

Method method = new Object(){}.getClass().getEnclosingMethod();

パフォーマンス的にどうかはわからないが、Methodオブジェクトが取得できるのはいいと思う。