加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何创建自定义java注释以记录方法参数

发布时间:2020-12-15 00:50:05 所属栏目:Java 来源:网络整理
导读:我正在编写 JavaEE应用程序,我想使用和创建自定义注释,它将在调用带注释的方法时记录数据.我想要做的是,当调用带注释的方法时,代码遍历所有传递的方法参数并写入标准输出参数键和值. 一些例子: public class Test { @LogMethodData public int sum(int firs
我正在编写 JavaEE应用程序,我想使用和创建自定义注释,它将在调用带注释的方法时记录数据.我想要做的是,当调用带注释的方法时,代码遍历所有传递的方法参数并写入标准输出参数键和值.

一些例子:

public class Test {

    @LogMethodData
    public int sum(int first,int second) {
        return first + second;
    }
}

我想实现,当一个自定义的metod将用@LogMethodData注释时,后面的代码将注意并将传递的方法参数记录到标准输出(如果参数优先,则类似“方法数据:第一 – 4,第二 – 5”)包含值4,参数second包含值5),与方法传递的参数数量无关.

如果有人可以帮助我,我会很高兴,因为我一直在寻找解决方案,但我没有找到任何有用的东西.最后,我不熟悉这些事情.

问候,
Dahakka

解决方法

无需定义自己的Annotation,可以在EE Con??tainer as explained here中使用@Interceptors Annotation.
@Interceptors(LoggingInterceptor.class)

在Interceptor中,您将获得包含您的Parameters的Context

public class LoggingInterceptor {
    ...

    @AroundInvoke
    public Object modifyGreeting(InvocationContext ctx) throws Exception {
        ....
        Object[] parameters = ctx.getParameters();
        try {
            return ctx.proceed();
        } catch (Exception e) {
            logger.warning("Error calling ctx.proceed in modifyGreeting()");
            return null;
        }
    }
}

另一个例子:here

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读