我有以下场景 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()
方法中做什么,请将其传递(作为 boolean
、int
、等)。
这会让处理您代码的其他开发人员感到困惑,为什么 callMe()
具有本质上是 secret 的参数。
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);
}
关于java问题来决定谁调用了这个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6781049/