Java 8 是否有可能使用反射或其他方法在方法中插入代码?

标签 java methods reflection insert overwrite

是否可以简单地将代码插入我无法编辑的其他类的方法中?

这是我无法编辑的示例类,因为我不是所有者

package me;

public class Test {

    public Test() {

    }

    public void doSomething() {
        System.out.println("im doing something...");
    }

}

我想在我的类中有一个事件方法是

//should fire when Test.doSomething is called
    public static void onDoSomethingEvent() {

    }

我想添加 onDoSomethingEvent();测试中的 doSomething 方法。

Method method = Class.forName("me.Test").getDeclaredMethod("doSomething");
            method.setAccessible(true);
            //is there something in some lib or else like this?
            //method.insert("Main.onDoSomethingEvent()");
    ```


最佳答案

另一种方法是您可以创建一个类来扩展该 Test 并以您自己的方式覆盖 doSomething()

关于Java 8 是否有可能使用反射或其他方法在方法中插入代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59118697/

相关文章:

java - 创建一个在数组中搜索用户输入值并输出结果(如果有)的方法?

java - Java 是 "pass-by-reference"还是 "pass-by-value"?

java - 将类对象的实例添加到 ArrayList 时出现问题,我做错了什么? [JAVA]

java - 我的 Android 类中的 Arraylist 错误

java - 在 catch block 中重新抛出异常是否有意义?

java - 如何在 Java 中的参数提示中强制执行整数限制

java - 从类文件实例化通用参数化类型

c++ - 如何使用 C++ 模板模拟类型引用?

c# - Type.GUID 是否跨编译唯一标识每种类型?

java - 单击浏览器后退按钮时如何使 session 失效并阻止访问?