2016-11-10 6 views
0

いくつかのJavaソースファイルを解析し、ASTを使用して情報を取得しようとしています。現在、私は何とかパラメータ化された型の型を何とか取得したいと考えています。List<String>からStringが必要です。jdtを使用して単一タイプのパラメータ化タイプを抽出する方法

public boolean visit(VariableDeclarationFragment f) { 
if (f.getParent() instanceof FieldDeclaration) { 
    FieldDeclaration d = (FieldDeclaration) f.getParent(); 
    if (d.getType().isParameterizedType()) { 
     System.out.println("Par type : " + d.getType().toString()); 
    } 
} 
} 

このスニペットは私にList<String>を与えます。 進める方法についてのアイデアはありますか?

+0

何も実行されません。私はソースコードファイルを解析するだけです。 'List 'または 'ArrayList 'を取得したので、 'List/ArrayList'部分を取り除き' String/double'を得る方法はありませんか? –

答えて

1

TypeParametrizedTypeにキャストし、インナータイプを抽出する必要があります。

public boolean visit(VariableDeclarationFragment f) { 
    if (f.getParent() instanceof FieldDeclaration) { 
    FieldDeclaration d = (FieldDeclaration) f.getParent(); 
    if (d.getType().isParameterizedType()) { 
     ParameterizedType parType = (ParameterizedType) d.getType(); 
     System.out.println("Par type : " + parType.typeArguments().get(0).toString()); 
    } 
    } 
} 
関連する問題