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() .
是否可以简单地将代码插入我无法编辑的其他 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() .