Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么下面的代码给了我一个“;“建议不匹配”;_Java_Aop_Aspectj - Fatal编程技术网

Java 为什么下面的代码给了我一个“;“建议不匹配”;

Java 为什么下面的代码给了我一个“;“建议不匹配”;,java,aop,aspectj,Java,Aop,Aspectj,我正在努力学习AspectJ,到目前为止,我已经很好地习惯了这些概念。所以在这里,我试图编写方面类来验证一个对象。但是下面的代码给了我advicednotmatch的东西 before(com.message.pojo.Entity entity) : call(*public com.message.helper.Processor.process(com.message.pojo.Entity)) && args(entity) &&

我正在努力学习AspectJ,到目前为止,我已经很好地习惯了这些概念。所以在这里,我试图编写方面类来验证一个对象。但是下面的代码给了我
advicednotmatch
的东西

before(com.message.pojo.Entity entity) : call(*public com.message.helper.Processor.process(com.message.pojo.Entity))
     && args(entity)
        && target(com.message.helper.MessageProcessor){
        ValidationUtil validation = new ValidationUtil();
        validation.validate(entity);
    }
现在我检查的所有限定名都是正确的。请检查我的java项目结构的屏幕截图


[

切入点有一点语法问题:与其使用
call(*public
),不如使用
call(public*
,然后它就可以工作了

顺便说一句,您还可以使用本机AspectJ语法的导入来替换完全限定的类名。FQDN仅在基于注释的@AspectJ语法中是必需的。假设我们在屏幕截图中讨论的是
validationspect
,对于同一个包中的两个类,您甚至不需要任何导入。请这样尝试:

package com.message.helper;
导入com.message.pojo.Entity;
公共方面验证方面{
在(实体)之前:
调用(公共*处理器进程(实体))&&
args(实体)&&
目标(消息处理器)
{
ValidationUtil validation=新的ValidationUtil();
验证。验证(实体);
}
}