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.html
------解决方案--------------------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/false
public boolean call_other_method() {
//do something
return true; //or return false
}
------解决方案--------------------
7楼的方法并没有改源码啊。。。重写并不是改源码。。。不改源码就可这么实现。。要么就改源码重新打jar包。。。别无他法了。。。
------解决方案--------------------
------解决方案--------------------
如果不想改jar包中的源代码,那就只有想办法在classloader上下功夫了
http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/
------解决方案--------------------
http://cglib.sourceforge.net/xref/samples/Trace.html