当前位置: 代码迷 >> Java相关 >> java中实现方法调用捕获,该如何处理
  详细解决方案

java中实现方法调用捕获,该如何处理

热度:346   发布时间:2013-02-25 21:48:22.0
java中实现方法调用捕获
JAVA 代码

ClassA ca = new ClassA();
boolean flag = ca.something();//方法调用返回true/false

如何实现对这个方法调用的监控,在执行ca.something()时
可以执行自己的方法,直接返回true/false 
(这个方法是在jar包中,如果建议改源代码的话,请慎重回复)

------解决方案--------------------------------------------------------
用注解,自己去查查资料
------解决方案--------------------------------------------------------
http://www.ibm.com/developerworks/cn/java/j-lo-jse61/index
------解决方案--------------------------------------------------------
boolean flag = ca.something();//方法调用返回true/false

如何实现对这个方法调用的监控,在执行ca.something()时
可以执行自己的方法,直接返回true/false 




---------------------
直接boolean flag = true/false不就结了嘛
------解决方案--------------------------------------------------------
可以通过子类继承来重写方法,所以可以用匿名类
Java code
ClassA ca = new ClassA() { //匿名类    public boolean something() { //重写方法        return call_other_method(); //调用自己的方法    }}boolean flag = ca.something();//方法调用返回true/falsepublic boolean call_other_method() {    //do something     return true; //or return false}
------解决方案--------------------------------------------------------
7楼的方法并没有改源码啊。。。重写并不是改源码。。。不改源码就可这么实现。。要么就改源码重新打jar包。。。别无他法了。。。
------解决方案--------------------------------------------------------
探讨
引用:

7楼的方法并没有改源码啊。。。重写并不是改源码。。。不改源码就可这么实现。。要么就改源码重新打jar包。。。别无他法了。。。


那个方法调用也是在jar中的。 就是在捕获 jar中某个类调用jar的其它类的某个方法,捕获后可以调用自己的方法,实现返回自己的值或者实现监控等等

------解决方案--------------------------------------------------------
如果不想改jar包中的源代码,那就只有想办法在classloader上下功夫了

http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/
------解决方案--------------------------------------------------------
http://cglib.sourceforge.net/xref/samples/Trace
  相关解决方案