我正在开发一个Intellij Idea插件,我希望得到一个类的所有字段信息。但我遇到了一些困难,我无法获得通用类型的PsiField。如:
private String[] stringsArr;
private List<String> stringList;
private List<BeanLog> beanLogList;
如何获得&#39; BeanLog&#39;的PsiClass?来自PsiField?
答案 0 :(得分:7)
field.getType()
返回PsiClassType List<BeanLog>
。其fieldType.getParameters()[0]
将为PsiClassType BeanLog
。如果要以通用方式(不仅来自List
)提取集合组件类型,则可以使用PsiUtil.extractIterableTypeParameter(fieldType, false)
。要从PsiClass
获取PsiClassType
,您可以使用type.resolve()
或PsiUtil.resolveClassInClassTypeOnly
。