Java 8 是否可以简单地将代码插入到使用反射或其他方法的方法中?

Java 8 Is there a simple possibility to insert code in a method using reflections ore something else?

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

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

package me;

public class Test {

    public Test() {

    }

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

}

我想在我的 class 中有一个事件方法,它是

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

    }

我想添加 onDoSomethingEvent();到 Test.

中的 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()");
    ```


我不知道。我认为那将是一个安全漏洞。但是,如果您有权访问生成事件的内容,则可以执行以下操作:

class MyClass extends Test {
   @Override doSomething() {
     super.doSomething(); // to invoke super class method.
    //your code here
    }
}

现在添加 MyClass 的实例作为该事件的 listener

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