本文主要是介绍Cglib的MethodPro的invoke和invokeSuper的区别;为何invokeSuper可以内部调用方法依然能增强,为何jdk代理不能实现invokeSuper的功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
个人总结
类继承测试代码
package test1;public class B {public static void main(String[] args) {B2 b2=new B2();b2.a1();}
}class B1{public void a1() {System.out.println("a1");this.a2();}public void a2() {System.out.println("a2");}
}
class B2 extends B1{@Overridepublic void a1() {System.out.println("a1增强1");super.a1();System.out.println("a1增强2");}@Overridepublic void a2() {System.out.println("a2增强1");super.a2();System.out.println("a2增强2");}
}
打印结果如下:
B2种调用B1种的a1,a1中调用this.a2(),其实会调用B2中覆盖的a2方法!cglib 能实现本类中方法互相调用 增强的原理就是类继承。
a1增强1
a1
这篇关于Cglib的MethodPro的invoke和invokeSuper的区别;为何invokeSuper可以内部调用方法依然能增强,为何jdk代理不能实现invokeSuper的功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!