我正在创建自己的 doclet,并且我需要显示方法中的参数何时可以为空。为此,我想使用 javax.annotation 中的 @Nullable 注释。就像谷歌的人在这里所说的那样:
public Object myMethod(String firstName, String lastName, @Nullable Phone phone) {
//code
}
我的 Doclet 中是否有任何方法可以获取该 Phone 参数的“可为空”注释?
找到了!
Parameter 接口已经有一个漂亮的 annotations() 方法,我们可以从与该参数相关的所有注释中获取 AnnotationDesc 数组。因此,我们只需要从 MethodDoc (MethodDoc.parameters()) 中获取所需的参数,然后从该参数中获取 annotations() 方法的注释 (AnnotationDesc[] annotations = pParam.annotations();)。从那里,很容易得到与该参数相关的注释是否“可为空”(:
for(AnnotationDesc annotation : annotations) {
if(annotation.toString().equals("@javax.annotation.Nullable")) { ...
例如。