0

我正在使用 AJDT(AspectJ 开发工具)Eclipse 插件。

我写了以下建议:

package com.exemple.aop.aspect;

import com.exemple.aop.bean.impl.MyBeanImpl.Iface;



aspect MyAspect {
    
    // pointcut
    pointcut clientMethod(Iface p) : target(p) && call(String com.exemple.aop.bean.impl.MyBeanImpl$Client.doSomething());  
    
    // advice
    // **LINE JUST BELOW IS MARKED AS ERROR**
    after(Iface p) returning(Object x): clientMethod(p) {
        System.out.println("Returning from client method");
        System.out.println("Target: " + p);
        System.out.println("Return: " + x);
    }
}

我编写了一个有效的单元测试:在控制台中可以看到痕迹。

但是,当使用 AspectJ/Java 编辑器打开 Java 文件时,我的 Eclipse UI 在“ after(Iface p) returned(Object x): clientMethod(p) { ”行显示错误,它说:

此行有多个标记

  • 此方法必须返回 int 类型的结果

  • 此行有 2 个 AspectJ 标记

请注意,该项目在“项目资源管理器”视图中未标记错误标志。

有谁知道或知道为什么 Eclipse AJDT 插件显示错误“此方法必须返回 int 类型的结果”?

谢谢!

4

2 回答 2

0

有几种可能性。最有可能的是,您正试图在 java 编辑器中打开一个方面文件。

于 2013-07-31T20:42:26.060 回答
0

您的方面文件是作为 Java 类 ( MyAspect.java ) 创建的。您必须将其创建为 Aspect ( MyAspect.aj )。

只需通过具有相同内容的New -> Other -> Aspect 即可。

你应该有 Eclipse (AJDT) 的 AspectJ 插件

而已

于 2015-07-30T23:27:52.723 回答