2011-10-14 16 views
11

Java 6 metamodel API'sini kullanarak bir yöntemin parametrelerinin türlerini bulmaya çalışıyorum. Tür bir enum ise, Ayrıca, onun türünün enum sabit adlarını bilmek isterim. İşte ben bugüne kadar bu var:javax.lang.model.VariableElement parametresinden parametre türü nasıl alınır?

for (Element member : members) { 
    if(member.getKind() == ElementKind.METHOD) { 
     ExecutableElement methodElement = (ExecutableElement) member; 
     List<? extends VariableElement> parameters = methodElement.getParameters(); 
     for (VariableElement parameter : parameters) { 
      //How do I get the type of the parameter here? 
     } 
    } 
} 

cevap

10

Element#asType() size DeclaredType alır.

Enumlar için, enum türünün öğesini almak üzere DeclaredType ile Types#asElement() kullanın ve üyeler üzerinde bir ElementVisitor veya getEnclosedElements() kullanarak yineleyin.

+0

Teşekkürler! Sadece şimdi deniyorum. – Daniel

+14

Çalıştı, ancak yardımcı olamadım ama bunun çalıştığım en az sezgisel API'lardan biri olduğunu hissediyorum. – Daniel

İlgili konular