【发布时间】:2017-03-04 14:39:16
【问题描述】:
我有一个抽象类Foo。
如果我创建一个将 Foo 扩展至名为 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);
它捕获了 Bar 外部的 ConcreteFoo 创建,但我想拦截 Foo 的每个子类。
我该怎么做?
【问题讨论】: