Java语言怎么才能知道自己函数是被哪个函数调用的,怎么在函数里改变外面的函数的调用的代码和参量呢

Java语言怎么才能知道自己函数是被哪个函数调用的,怎么在函数里改变外面的函数的调用的代码和参量呢?完全没有思路,具体用什么库实现?

可以通过获取当前线程的堆栈轨信息,从中提取出调用函数的信息,
效果图:

img


代码

public class CallerInfo {

    public static void main(String[] args) {
        callerMethod("Hello, world!");
    }

    public static void callerMethod(String message) {
        // 获取当前线程的堆栈轨迹
        StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();

        if (stackTrace.length > 2) {
            // 调用者所在的堆栈轨迹元素
            StackTraceElement callerStackFrame = stackTrace[2];

            // 获取调用者的类名和方法名
            String className = callerStackFrame.getClassName();
            String methodName = callerStackFrame.getMethodName();

            System.out.println("Caller Class: " + className);
            System.out.println("Caller Method: " + methodName);

            // 在这里可以根据需要做进一步的处理,例如调用其他方法
            calledMethod(message);
        } else {
            System.out.println("Unknown caller");
        }
    }

    public static void calledMethod(String message) {
        System.out.println("Called Method: " + message);
    }
}


浅析:
代码里在callerMethod 中调用了 calledMethod,并将参数值传递给了calledMethod . 其实你应该可以读的懂

这个就要用到Java反射;你可以去看看Java反射具体内容

人家都是尽量的解耦,尽量不要去管外面到底是谁在调用自己
你怎么反其道而行之
说说你到底要实现什么最终目的,不要老纠结于自己想出来的好办法而不顾目的

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^