2011-10-14 10 views
11

मैं जावा 6 मेटामोडेल एपीआई का उपयोग कर किसी विधि के पैरामीटर के प्रकार खोजने की कोशिश कर रहा हूं। यदि प्रकार एक enum है, मैं इसके सभी प्रकार के enum निरंतर नाम भी जानना चाहता हूं। यहाँ मैं अब तक क्या कर लिया है:javax.lang.model से पैरामीटर प्रकार कैसे प्राप्त करें। VariableElement

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? 
     } 
    } 
} 

उत्तर

10

Element#asType() आप DeclaredType हो जाता है।

enums के लिए, enum प्रकार के तत्व प्राप्त करने के लिए DeclaredType के साथ Types#asElement() का उपयोग करें, और फिर एलिमेंटविजिटर या getEnclosedElements() का उपयोग करके सदस्यों पर फिर से प्रयास करें।

+0

धन्यवाद! बस अभी कोशिश कर रहा हूँ। – Daniel

+14

यह काम करता है, हालांकि मैं मदद नहीं कर सकता लेकिन ऐसा महसूस करता हूं कि यह कम से कम सहज ज्ञान युक्त एपीआई है जिसमें मैंने काम किया है। – Daniel

संबंधित मुद्दे