首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么pointcut.matches(String.class)返回"true“

为什么pointcut.matches(String.class)返回"true“
EN

Stack Overflow用户
提问于 2010-12-17 13:55:58
回答 1查看 302关注 0票数 2

我是spring AOP的新手,我编写了一个aspectJ AOP切入点的小测试,

代码语言:javascript
复制
public void test1() {

    AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut();
    pointcut.setExpression("execution(public * java.util.*.*(..))");

    System.out.println(pointcut.matches(String.class)) ;
}

我希望它会打印出"false",因为java.util包中没有包含String.class。但实际上它给了我一个“真”,我犯了什么错误?

版本: spring 3.0

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2010-12-17 16:29:55

这个切入点从java.util包和子包中寻找方法的执行,其中有几个在String类中。例如,String.replaceFirst(String, String)的源代码如下所示(我插入的评论):

代码语言:javascript
复制
public String replaceFirst(String regex, String replacement) {
return 
        /* java.util.regex.Pattern */ Pattern.compile(regex).matcher(this)
        /* java.util.regex.Matcher */ .replaceFirst(replacement);
}

所以匹配是正确的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4468097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档