在 Java 中挂接现有方法

2022-09-04 21:29:54

我想在Java中挂接方法System.out.print,并能够在调用方法的部分之前读取/更改方法中使用的变量,该部分实际上将字符串添加到输出流的任何位置。

在C++我只是绕道函数,或者设置一个int3指令,这样我就可以访问寄存器,但在java中,我不知道如何完成类似的事情。


答案 1

您可以重写方法的字节码,并在此过程中捕获/更改局部变量。这不是微不足道的。请参阅此处的一些注释。

也许你真正想要的是一个java调试器?您可以使用 eclipse 将调试器连接到远程进程,添加断点,并使用 eclipse 轻松捕获/更改局部变量。

您要解决的真正问题是什么?


答案 2

看看这个链接

他偷偷地定义了一个静态的匿名类,以便 System.out 指向不同的东西,因此并将路由通过该对象。printprintln


推荐