Java注释 - 是否有任何帮助库可以读取/处理注释?

时间:2010-04-07 20:11:20

标签: java annotations

我开始大量使用Java注释。一个例子是使用注释方法并将它们转换为基于'telnet'的命令行命令。我这样做是通过解析注释并挂钩到jopt选项解析器。

但是,我手动做了很多这些。例如,Method参数注释处理..

Method method = ... //;
Class[] parameters = method.getParamterTypes();
Annotation[][] annotations = method.getparamterAnnotations();

for( int i = 0; i < parameters.length; i++ )
{
   // iterate through the annotation , see if each param has specific annotation ,etc.
}

这是多余和乏味的。

是否有任何帮助处理注释的开源项目?

3 个答案:

答案 0 :(得分:6)

我们使用它来寻找特定的注释:

for (Field field : clazz.getDeclaredFields()) {
    if (field.isAnnotationPresent(MyAnnotation.class)) {
        field.setAccessible(true);
        String fieldName = field.getName();
        Object fieldValue = field.get(myObj);
        field.setAccessible(false);
    }
}

答案 1 :(得分:1)

任何项目都包含完全相同的样板代码。你为什么不自己动手做?

我确定你可以使用ASM:

答案 2 :(得分:0)

不完全确定注释需要哪些帮助,但我建议您查看我的Annox项目。这是API

使用Annox,您可以将注释读入

  • XAnnotation
  • XAnnotationField
  • 对XPackage
  • XClass
  • XConstructor
  • XField
  • XMethod
  • X参数

可能更适合您需求的结构。您可以从XML读取任意注释,在其上运行访问者等等。