我正在寻找一种方法,可以获取调用我的完整方法签名。
例如:
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,因为 whoCallme 只返回 "run" 作为方法名称。
你们知道其他方法可以获取完整的方法签名吗,比如 run(java.lang.String)?