如下面代码
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;
}