• ProceedingJoinPoint获取当前方法


    aspectJ切面通过ProceedingJoinPoint想要获取当前执行的方法:

    错误方法:


         Signature s = pjp.getSignature();
        MethodSignature ms = (MethodSignature)s;
        Method m = ms.getMethod();

    这种方式获取到的方法是接口的方法而不是具体的实现类的方法,因此是错误的。


    正确方法:

            Signature sig = pjp.getSignature();
            MethodSignature msig = null;
            if (!(sig instanceof MethodSignature)) {
                throw new IllegalArgumentException("该注解只能用于方法");
            }
            msig = (MethodSignature) sig;
            Object target = pjp.getTarget();
            Method currentMethod = target.getClass().getMethod(msig.getName(), msig.getParameterTypes());

  • 相关阅读:
    Android 新建项目报错(CANNOT RESOLVE SYMBOL R)
    GIT相关
    Java 语言基础
    StarUML
    public static void main(String[] args)的理解
    软件安装以及环境搭配
    基础
    字符串的格式化
    python里的正则表达式
    集合
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/6046484.html
Copyright © 2020-2023  润新知