我有一个AspectJ - 项目的一个方面,可以让一些System.out.println
来学习一些方面等。
问题是,我为裁剪定义的建议并不起作用。
显示的警告是:advice defined in ShapeAspect has not been applied [Xlint:adviceDidNotMatch]
我正在使用Mac OS X 10.10 Yosemite,Eclipse Luna Service Release 2(4.4.2)和AspectJ Runtime:org.aspectj.runtime_1.8.5.20150128171000.jar,用于LTW类等: org.aspectj.weaver_1.8.5.20150128171000.jar以及org.aspectj.ajde_1.8.5.20150128171000.jar。
我简单明确的方面:
public aspect ShapeAspect {
// pointcuts
pointcut myPointcut2() : execution(oldshape.Point.new(..));
// advices
before() : myPointcut2(){
System.out.println("Before init.");
}
}
编辑:包括Point类
public class Point implements Shape{
private int x,y;
public Point(int x, int y){
this.x = x; this.y = y;
}
...
@Override
public void draw(GC gc) {
Color c = new Color(gc.getDevice(), 0, 0, 255);
gc.setForeground(c);
gc.drawPoint(this.x, this.y);
c.dispose();
}
}
public class SWTMain{
public static void main(String[] args){
Shape s1 = new Point(4,4);
s1.draw(gc);
}
}
但before()..
行是警告:advice defined in ShapeAspect has not been applied [Xlint:adviceDidNotMatch]
这里有什么问题?在我的带有Windows的PC上它可以正常工作吗?