2012-05-24 55 views
1

我在玩Doclets,並且正在運行下一個問題。我想從一個類中獲取屬性,並且我認爲參數方法會有所幫助。我的代碼看起來像下一個(我做的是一個方法的返回類型):javadoc doclet:如何從一個類中獲取屬性

 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的是從類型 MyMethodResponse

fields length for type MyMethodResponse is 0 

也許我錯過了一些東西。 ClassDoc.fields()方法不會帶給我所有的屬性列表嗎?有沒有辦法做到這一點?非常感謝你。

回答

2

好的,在網上搜索,我還沒有找到很多解釋/例子。有一個網頁:其中use doclet to extract class, field, method information from java source code,爲了提取的屬性,他們使用的ClassDoc.fields()方法,在未來的方式:

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

使用以這種方式,我得到的所有的屬性,這些屬性我想,因爲我禁用默認啓用的訪問修飾符過濾器。 在API中,來自fields方法的布爾參數用於使用enable/dissable在調用javaDoc(-public,-protected,-package和-private)時聲明的訪問修飾符過濾器。因此,如果我們只想從該類中獲取所有屬性,則需要將其禁用爲false。

相關問題