2017-03-04 73 views
0

我有一个抽象类FooAspectJ - 如何为子类捕获构造函数调用?

我想,如果我创建一个扩展名为富的Bar外看点的具体类的新实例有一个编译错误。

我尝试这样做:

public pointcut errorcall(): call(Foo.new(..)) && !within(Bar); 
declare error: errorcall():"Error: You must use Bar creation methods!"; 

不过,这并不赶上Foo的子类。

如果我宣布了切入点为:

public pointcut errorcall(): call(ConcreteFoo.new(..)) && !within(Bar); 

它惹人酒吧外的ConcreteFoo创作,但我想拦截美孚的每个子类。

我该怎么办?

回答

0

MyClass+表示法也抓住了子类。这些信息可以在任何AspectJ教程中找到,例如here

public pointcut errorcall(): 
    call(Foo+.new(..)) && !within(Bar); 
相关问题