2016-11-10 1 views
0

Ich versuche, einige Java-Quelldateien zu analysieren und einige Informationen mit AST erhalten. Momentan möchte ich irgendwie die Art der parametrierten Typen bekommen zB von List<String> ich brauche die String.So extrahieren Sie den einzelnen Typ eines parametrisierten Typs mit 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()); 
    } 
} 
} 

Dieser Ausschnitt gibt mir die List<String>. Irgendwelche Ideen zum weiteren Vorgehen?

+0

Nichts läuft. Ich parse nur Quellcode-Dateien. Da ich die 'List ' oder die 'ArrayList ' bekomme, gibt es keine Möglichkeit, den 'List/ArrayList' Teil loszuwerden und' String/double' zu ​​erhalten? –

Antwort

1

Sie müssen die Type zu ParametrizedType umwandeln und den inneren Typ extrahieren.

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()); 
    } 
    } 
} 
Verwandte Themen