나는 특정 메소드를 검색하는 플러그인을 개발 중입니다. 이제 선언 된 모든 변수를 유형과 함께 표시하고 싶습니다. 어떻게 할 수 있습니까? 메소드 이름은 IMethod 유형입니다. 도움말어떻게 함수에서 변수를 얻을 수 있습니까?
0
A
답변
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()'를 사용하십시오.
관련 문제
- 1. Regex : 함수에서 매개 변수를 가져올 수 있습니까?
- 2. red5 : 현재 IConnection을 어떻게 얻을 수 있습니까?
- 3. 함수에서 변수를 가져올 수 없습니다.
- 4. 어떻게 CurrentWindow를 얻을 수 있습니까?
- 5. 어떻게 출력을 얻을 수 있습니까?
- 6. 대의원을 어떻게 얻을 수 있습니까?
- 7. 어떻게 얻을 수 있습니까? UI_USER_INTERFACE_IDIOM
- 8. 어떻게 onChangeEvent_sooner_를 얻을 수 있습니까?
- 9. 문자의 ASCII 코드는 어떻게 얻을 수 있습니까?
- 10. 클래스 함수에서 변수 설정하기, 그 변수를 어디서 사용할 수 있습니까?
- 11. 로컬 함수에서 전역 변수를 변경할 수 없습니다.
- 12. 함수에서 변수를 반향하는 방법
- 13. 스크립틀릿에서 JSTL 변수를 어떻게 사용할 수 있습니까?
- 14. 설치된 코덱 목록은 어떻게 얻을 수 있습니까?
- 15. json 결과에서이 값을 어떻게 얻을 수 있습니까?
- 16. 어떻게 상대 경로를 얻을 수 있습니까?
- 17. 어떻게 터미널 출력을 파이썬으로 얻을 수 있습니까?
- 18. 파이썬에서 사용자 이름을 어떻게 얻을 수 있습니까?
- 19. ScheduledThreadPoolExecutor에서 실행중인 작업을 어떻게 얻을 수 있습니까?
- 20. 어떻게 MySql 백업 크기를 얻을 수 있습니까?
- 21. 어떻게 화면 해상도를 얻을 수 있습니까?
- 22. Django에서 미래의 게시물을 어떻게 얻을 수 있습니까?
- 23. 어떻게 hexap에서 데이터를 얻을 수 있습니까?
- 24. 사진의 내용을 Android에서 어떻게 얻을 수 있습니까?
- 25. Python http.client.HTTPResponse 객체는 어떻게 얻을 수 있습니까?
- 26. CGContext에서 어떻게 색 공간을 얻을 수 있습니까?
- 27. 스프라이트의 속도를 어떻게 얻을 수 있습니까?
- 28. 어떻게 DATA를 TIME으로부터 얻을 수 있습니까?
- 29. 문자열의 특정 부분을 어떻게 얻을 수 있습니까?
- 30. Codebehind에서 aspx의 DataKeyNames를 어떻게 얻을 수 있습니까?
이의 분명히하자 : 당신이 묻는 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 –
Eclipse의 IMethod type.sorry 내 실수 – Steven