问题描述
- java怎样获取函数调用者的方法名?
-
如下面代码class A{ private void method(){ //这里怎样获取调用者的名称呢? } private void method1(){ method(); } private void method2(){ method(); } }
解决方案
使用StackTraceElement 数组,
参看在Java代码运行时获取当前和调用者的行号,方法名,类名,文件名
解决方案二:
我不知道怎么直接获取到,如果为method()添加一个参数表示调用方法的名称,由调用者传入自己的名称,不知道是否满足你的要求。
class B {
private void method(String invokeName) {
}
private void method1() {
method("method1");
}
private void method2() {
method("method2");
}
}
解决方案三:
采纳的答案很对,现在给大家一个懒人代码
//获取调取函数所在类名称
public static String getLastClassName(){
String name=Thread.currentThread().getStackTrace()[3].getClassName();
return name;
}
时间: 2024-11-05 20:39:17