0
그래서 Eclipse의 JDT API로 놀고 있고 작은 애플리케이션을 빌드하려고합니다. 그러나 방문한 노드에서만 데이터를 추출 할 수 있기 때문에 데이터를 추출 할 때 막혔습니다.Eclipse의 JDT 방문자 패턴에서 데이터 추출하기
예를 들어 getSuperclassType() 값을 List 또는 HashMap에 반환하거나 추가 할 수 있기를 원합니다. 그러나 새로운 ASTVisitor는 내부 클래스이기 때문에 Java는 최종 키워드없이 ASTVisitor 내부에서 사용되는 Object를 선언 할 수 없습니다.
private static void get(String src) {
ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setSource(src.toCharArray());
parser.setKind(ASTParser.K_COMPILATION_UNIT);
parser.setResolveBindings(true);
parser.setBindingsRecovery(true);
final CompilationUnit cu = (CompilationUnit) parser.createAST(null);
cu.accept(new ASTVisitor() {
Set names = new HashSet();
public boolean visit(TypeDeclaration typeDecNode) {
if(!typeDecNode.isInterface()) {
System.out.println(typeDecNode.getName().toString());
System.out.println(typeDecNode.getSuperclassType());
System.out.println(typeDecNode.superInterfaceTypes().toString());
return true;
}
...
이와 같은 코드를 통해 방문한 각 노드의 원하는 데이터를 데이터 구조에 저장할 수 있습니까? 방문자 패턴을 사용하지 않고 AST에서 노드를 통과하는 또 다른 방법은 없을까요?