使用反射来修改方法并获取对其局部变量的访问权限

Thu*_*fir 1 java api reflection version-control gnu

由于我不太确定与分配gnu.mail.providers有什么关系,我想用反射来与这个类进行交互.

我认为getMessage中的算术不正确:

          GroupResponse gr = ns.connection.group(name);
          first = gr.first;
          last = gr.last;
          count = gr.count;
          // Get article
          m = getMessageImpl(msgnum - 1 + first);
          // Cache store
          articleCache.put(key, m);
          return m;
Run Code Online (Sandbox Code Playgroud)

无论如何,我想在getMessage方法中访问上面的GroupResponse对象.虽然我知道反射可以沿着这些方向做事,但我不确定如何从这个特定的方法中获得这个特定的对象.我已经使用反射来访问某些字段(first,last,count),但这看起来有点不同.

它是GroupResponse类,它似乎把所有东西放在一起.

我可以使用反射来编写自定义的getMessage方法并将其"粘贴"到NNTPFolder上吗?我不确定什么是可行或可取的.

Per*_*ion 5

您不能使用反射来修改方法的内容.您不能使用字节码操作库来修改方法的内容.但是,通过字节代码操作,您可以拦截方法调用并重定向到您选择的另一个方法.这就像你要离开的那样近.

另一种选择是获取库的来源,进行一些修改以满足您的需要,并重新编译.