java问题来决定谁调用了这个方法

标签 java

我有以下场景 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() 具有本质上是 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/

相关文章:

java - 线程运行方法

Java/Tomcat 独立,如何记录/访问所有 HTTP GET 请求

java - Base64 输入流转字符串

java - 在 Java lambda 中使用两个流来计算协方差

java - Spring JDBC中的多个一对多关系

java - Hibernate 与 order by 不同

java - 架构 - 我应该将许多临时应用程序合并到一个应用程序中吗?

java - 等待 Firebase 中的 onDataChange

java - Play Framework 中的 Json 响应字符编码

java - Jsch - 每个 session 多个 channel