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からノードをたどる別の方法は?