如何从javax.lang.model.VariableElement获取参数类型

Dan*_*iel 14 java apt

我正在尝试使用Java 6元模型API查找方法的参数类型.如果类型是枚举,我也想知道它的所有类型的枚举常量名称.这是我到目前为止所得到的:

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?
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

pru*_*nge 15

Element#asType()为您提供DeclaredType.

对于枚举,使用带有DeclaredType的Types#asElement()来获取枚举类型的元素,然后使用ElementVisitor或使用getEnclosedElements()迭代成员.

  • 虽然我不禁觉得这是我曾经使用过的最不直观的API之一,但它确实奏效了. (20认同)