我有以下情况
    testOne()和testTwo都调用相同的callMe()方法。

How do I decide inside callMe() method who called callMe().

public void testOne(){
    callMe();
}

public void testTwo(){
    callMe();
}

public void callMe(){
    System.out.println("I was called by following method."+methodName);

}


Any sort of help is appreciated.

最佳答案

生成堆栈跟踪并查看第二帧的任何解决方案都会导致痛苦-实际上,您正在做的是绕过将函数需要的内容传递给函数以使其起作用的想法。 。

如果您需要调用方方法的名称,则只需将其作为参数传递即可。如果您需要其他数据来决定callMe()方法中的操作,请将其传递(作为booleanint等)。

这将使其他处理您代码的开发人员感到困惑,为什么callMe()具有本质上是秘密参数。

public void testOne(){
    callMe("testOne");
}

public void testTwo(){
    callMe("testTwo");
}

public void callMe(String methodName){
    System.out.println("I was called by following method."+methodName);
}

10-06 13:45