2012-05-24 3 views
1

도크 렛을 사용하고있어, 다음의 문제에 봉착하고 있습니다. 클래스에서 속성을 가져 오려면 매개 변수 메서드가 도움이 될 것이라고 생각했습니다. 내 코드는 다음 중 하나 (나는 방법의 반환 유형에 대한 그 일을하고있다)과 같습니다javadoc 도크 렛 : 클래스로부터 속성을 취득하는 방법

 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() 메서드가 모든 속성 목록을 가져 오지 않겠습니까? 그것을 할 방법이 있습니까? 고맙습니다.

답변

2

좋아, 웹에서 검색, 나는 많은 설명/예제를 찾지 못했습니다. 하나의 웹 페이지가 있습니다 : 속성을 추출하기 위해, 그들은 ClassDoc.fields() 다음의 방법으로 방법을 사용 use doclet to extract class, field, method information from java source code, 여기서 :

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

그런 식으로, 내가 모든 속성을 얻을 사용을 그 기본적으로 사용하도록 설정된 액세스 한정자 필터를 사용하지 않기 때문에 원했던 것입니다. API에서 fields 메소드의 부울 매개 변수는 javaDoc (-public, -protected, -package 및 -private) 호출 중에 선언 된 액세스 수정 자 필터를 사용 가능/사용 불능으로 사용하는 데 사용됩니다. 따라서 클래스의 모든 속성을 가져 오려면 false로 설정하여 비활성화해야합니다.