2010-02-19 3 views
0

나는 특정 메소드를 검색하는 플러그인을 개발 중입니다. 이제 선언 된 모든 변수를 유형과 함께 표시하고 싶습니다. 어떻게 할 수 있습니까? 메소드 이름은 IMethod 유형입니다. 도움말어떻게 함수에서 변수를 얻을 수 있습니까?

+1

이의 분명히하자 : 당신이 묻는 Java 또는 Eclipse의'IMethod' 인터페이스에 관해서? http://www.jarvana.com/jarvana/view/org/eclipse/jdt/doc/isv/3.2.1-r321_v20060907/isv-3.2.1-r321_v20060907.jar!/reference/api/org/eclipse/jdt /core/IMethod.html –

+0

Eclipse의 IMethod type.sorry 내 실수 – Steven

답변

1

해당 IMethod의 CompilationUnit이있는 경우, 당신은이 ASTParser) illustrated here로 사용할 수 있습니다

ASTParser parser = ASTParser.newParser(AST.JLS3); 
parser.setSource(compilationUnit); 
parser.setSourceRange(method.getSourceRange().getOffset(), method.getSourceRange().getLength()); 
parser.setResolveBindings(true); 
CompilationUnit cu = (CompilationUnit)parser.createAST(null); 
cu.accept(new ASTMethodVisitor()); 

그런 다음 당신이 사용할 수있는 ASTVisitor

cu.accept(new ASTVisitor() { 
    public boolean visit(SimpleName node) { 
    System.out.println(node); // print all simple names in compilation unit. in our example it would be A, i, j (class name, and then variables) 
    // filter the variables here 
    return true; 
    } 
}); 
1

자바 리플렉션 API가 필요합니다. 이것 좀 봐 : link text

+0

아니요. Eclipse의 'IMethod'인터페이스에 대해 얘기하고 있습니다. http://www.jarvana.com/jarvana/view/org/eclipse /jdt/doc/isv/3.2.1-r321_v20060907/isv-3.2.1-r321_v20060907.jar!/reference/api/org/eclipse/jdt/core/IMethod.html 그리고 상관없이 리플렉션은 변수에 대해 알려주지 않습니다. 메서드 내에서 선언됩니다. –

0

리플렉션을 사용하여 메소드에 필요한 모든 매개 변수의 유형을 얻을 수 있습니다.

먼저 클래스를 사용하는 메소드를 반영한 ​​다음 'Method.getParameterTypes()'를 사용하십시오.

관련 문제