2016-04-06 8 views
2

Ich entwickle ein Intellij Idee Plugin, ich möchte alle Felder Informationen einer Klasse zu bekommen.Aber ich treffe mit Schwierigkeiten, die ich nicht generische Art von PsiField bekommen kann. Wie zum Beispiel:Wie bekomme ich generische Art von PsiField

private String[] stringsArr; 
private List<String> stringList; 
private List<BeanLog> beanLogList; 

Wie bekomme ich die PsiClass von 'BeanLog' von PsiField?

Antwort

6

field.getType() gibt PsiClassType List<BeanLog> zurück. Sein fieldType.getParameters()[0] wird PsiClassType BeanLog sein. Wenn Sie einen Sammelkomponententyp generisch extrahieren möchten (nicht nur von List), können Sie PsiUtil.extractIterableTypeParameter(fieldType, false) verwenden. Um PsiClass von PsiClassType zu erhalten, können Sie type.resolve() oder PsiUtil.resolveClassInClassTypeOnly verwenden.

+0

Sie geben mir einen großen Gefallen! – xiaohuo

Verwandte Themen