是否可以使用cglib支持此解决方案?
interface I {
void foo();
void boo();
}
abstract class B implements I {
foo();
}
abstract class C implements I {
boo();
}
abstract class D extends B {
}
代码
D d = new D();
d.foo();
d.boo();
答案 0 :(得分:1)
是的,这对CgLib来说没问题。我甚至试过这样做,这对我来说没问题。我使用cglib-nodep-2.1_3.jar。
如果你想要d.boo();什么都不做,我觉得这里没问题。
如果你想实现Java8默认方法之类的东西,那么传递一个对象的状态就会有点棘手。
唯一不同的是你需要通过Enhancer创建一个对象。如果你想改变" new D();"表现你应该尝试AspectJ。我认为它可以使它与AspectJ一起使用,但是eclipse compliator会一直给你带来问题。它应该可以忽略编译器错误。