我想找到一种方法来获得完整的方法签名,这叫我。找出哪种方法叫我
例如:
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”作为方法名称。
你们是否知道其他方式在那里我能得到这样的运行(java.lang.String中)的完整方法签名?
您需要调试api。您也可以使用字节码工具根据行号查找方法。 – biziclop 2012-04-05 18:44:26
为什么你需要这样做? – Jeffrey 2012-04-05 18:49:00
也许这可以帮助你:http://stackoverflow.com/questions/421280/in-java-how-do-i-find-the-caller-of-a-method-using-stacktrace-or-reflection – SWoeste 2012-04-05 18:56:52