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

前端之家收集整理的这篇文章主要介绍了如何创建自定义java注释以记录方法参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写 JavaEE应用程序,我想使用和创建自定义注释,它将在调用带注释的方法时记录数据.我想要做的是,当调用带注释的方法时,代码遍历所有传递的方法参数并写入标准输出参数键和值.

一些例子:

  1. public class Test {
  2.  
  3. @LogMethodData
  4. public int sum(int first,int second) {
  5. return first + second;
  6. }
  7. }

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

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

问候,
Dahakka

解决方法

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

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

  1. public class LoggingInterceptor {
  2. ...
  3.  
  4. @AroundInvoke
  5. public Object modifyGreeting(InvocationContext ctx) throws Exception {
  6. ....
  7. Object[] parameters = ctx.getParameters();
  8. try {
  9. return ctx.proceed();
  10. } catch (Exception e) {
  11. logger.warning("Error calling ctx.proceed in modifyGreeting()");
  12. return null;
  13. }
  14. }
  15. }

另一个例子:here

猜你在找的Java相关文章