私を呼び出している完全なメソッド シグネチャを取得する方法を見つけようとしています。
例えば:
public class Called {
public void whoCallMe() {
System.out.println("Caller Method: " + new Throwable().getStackTrace()[1].getMethodName());
}
}
public class Caller {
public static void run(int i) {
new Called().whoCallMe();
}
public static void run(String str) {
new Called().whoCallMe();
}
public static void run(boolean b) {
new Called().whoCallMe();
}
/** MAIN **/
public static void main(String[] args) {
run("hi");
}
whoCallMe() メソッドを実装した方法では、run メソッドがそれを呼び出していることがわかりますが、オーバーロードが 3 つあるため、whoCallme はメソッド名として「run」のみを返すため、どちらが呼び出し元であるかはわかりません。
run(java.lang.String) のような完全なメソッド署名を取得できる他の方法を知っていますか?