1

我想知道是否可以通过 JAutoDoc 检查方法(字段)注释的内容。

public interface A {
  @MyAnnotation(attribute=false)
  String getSomeValue();
}

在生成的 javadoc 中,我想根据注释属性输出一个值,attribute在这种情况下。用 构建正则表达式和模板似乎很简单#if(...)。在预览窗口中输入时一切正常,但在我的代码中它不起作用:JAutoDoc 似乎完全忽略了注释。有没有办法说服它超越方法/字段签名?

我尝试了多个级别的模板插入,例如方法层次结构中的独立模板或“返回其他”模板的子模板。

谢谢,弗兰克

4

2 回答 2

1

JAutodoc 不直接支持注释,但也许这个模板适合您的需要:

/**
#set($found = 'false')
#if(${e.getMember().getMember().getAnnotations()})
    #foreach($a in ${e.getMember().getMember().getAnnotations()})
    #if(${a.getElementName()} == 'MyAnnotation')
        #set($found = 'true')
        Annotation found: ${a.getElementName()}
        #foreach($vp in ${a.getMemberValuePairs()})
        #if(${vp.getMemberName()} == 'attribute')
            #if(${vp.getValue()} == 'false')
            attribute is false
            #elseif(${vp.getValue()} == 'true')
            attribute is true
            #else
            attribute is ${vp.getValue()}
            #end
        #end
        #end
    #end
    #end
#end
#if($found == 'false')
 * No Annotation.
#end
 */
于 2012-04-26T20:35:01.423 回答
1

使用 1.10.0 版的 JAutodoc,可以构建这样的模板:

#if(${e.hasAnnotation('MyAnnotation')})
#set($vc=$e.getAnnotation('MyAnnotation'))
#if(${$vc.getValue('mandatory')})
The value is mandatory.
#else
The value is optional.
#end
于 2012-10-10T08:15:54.720 回答