1

我正在玩 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() 方法不会给我带来所有属性列表吗?有没有办法做到这一点?非常感谢你。

4

1 回答 1

2

好的,在网上搜索,我没有找到很多解释/示例。有一个网页:使用doclet从java源代码中提取类、字段、方法信息,其中为了提取属性,他们使用ClassDoc.fields()方法如下:

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

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

于 2012-05-24T12:29:55.247 回答