javadoc doclet:如何从类中获取属性

时间:2012-05-24 10:06:31

标签: javadoc doclet

我正在玩Doclets,我遇到了下一个问题。我想从类中获取属性,我认为参数方法会有所帮助。我的代码看起来像下一个(我正在为方法的返回类型执行此操作):

        ClassDoc retType = pMethod.returnType().asClassDoc();
        if(retType == null) {
            System.out.println("No returnType for method " + pMethod.name());
            return false;
        } else {
            System.out.println("returnType for method " 
+ pMethod.name() + " is from type " + pMethod.returnType().typeName());
            }
            FieldDoc[] fields = retType.fields();
            System.out.println("fields length for type " + 
retType.name() + "  is " + fields.length);

我得到的是

  

方法myMethod的returnType来自类型   MyMethodResponse

fields length for type MyMethodResponse is 0

也许我错过了什么。 ClassDoc.fields()方法不会为我带来所有属性列表吗?有没有办法做到这一点?非常感谢你。

1 个答案:

答案 0 :(得分:2)

好的,在网上搜索,我没有找到很多解释/例子。有一个网页:use doclet to extract class, field, method information from java source code,为了提取属性,他们在下一个方法中使用ClassDoc.fields()方法:

FieldDoc[] fields=classDoc.fields(false);

以这种方式使用它,我得到了我想要的所有属性,因为我正在禁用默认启用的访问修饰符过滤器。 在API中,来自fields方法的boolean参数用于在调用javaDoc(-public,-protected,-package和-private)时使用enable / dissable声明的访问修饰符过滤器。因此,如果我们只想获取该类的所有属性,我们需要禁用它将其设置为false。