2016-04-06 8 views
2

Intellij Ideaプラグインを開発しています。私はクラスのすべてのフィールド情報を取得したいのですが、PsiFieldのジェネリックタイプを手に入れることはできません。例:一般的なタイプのPsiFieldを取得するには

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

PsiFieldから「BeanLog」のPsiClassを取得する方法は?

答えて

6

field.getType()は、PsiClassType List<BeanLog>を返します。そのfieldType.getParameters()[0]はPsiClassType BeanLogになります。一般的な方法で収集コンポーネントタイプを抽出する場合は、を使用できます(Listからのみではありません)。 PsiClassPsiClassTypeから取得するには、type.resolve()またはPsiUtil.resolveClassInClassTypeOnlyを使用できます。

+0

あなたは私に大きな好意を与える! – xiaohuo

関連する問題