2011-10-14 47 views
11

Tôi đang cố tìm các kiểu tham số của một phương thức bằng cách sử dụng API metamodel Java 6. Nếu loại là một enum, Tôi cũng muốn biết tất cả các tên của nó là hằng số enum. Dưới đây là những gì tôi đã có cho đến thời điểm này:Cách lấy kiểu tham số từ 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? 
     } 
    } 
} 

Trả lời

10

Element#asType() mang đến cho bạn loại DeclaredType.

Đối với enums, hãy sử dụng Types#asElement() với DeclaredType để lấy phần tử của loại enum và sau đó lặp qua các thành viên bằng cách sử dụng ElementVisitor hoặc bằng cách sử dụng getEnclosedElements().

+0

Cảm ơn! Chỉ cần thử nó ngay bây giờ. – Daniel

+14

Nó làm việc, mặc dù tôi không thể không cảm thấy như thế này là một trong những API trực quan ít nhất tôi đã làm việc với. – Daniel

Các vấn đề liên quan