intellij-idea - 我如何从 psiFile 中获取所有类(和内部类)?(智能插件)
问题描述
我是插件开发的新手,我想搜索项目中所有类的引用并检查它们是否扩展了一个特定的类,但是 getClasses 不给我内部类:
PsiJavaFile psiJavaFile = (PsiJavaFile) PsiManager.getInstance(project).findFile(virtualFile);
PsiClass[] javaFileClasses = psiJavaFile.getClasses();
for (PsiClass javaFileClass : javaFileClasses) {
PsiReferenceList extendsList = javaFileClass.getExtendsList();
....to something with extendList...
}
我如何在 psiJavaFile 中搜索内部类?
解决方案
PsiClass
有getInnerClasses
和getAllInnterClasses
方法。
推荐阅读
- database - 有没有办法让 CURRENT_TIMESTAMP 只在数据库中存储日期、小时和分钟?
- json - 从 JSON 文件加载的字符串和 QML/QtQuick 中的动态图像创建
- gradle - JMeter - Gradle 构建失败
- docker - Jenkins 在管道上运行任何 docker 命令时出错
- mysql - 我们可以为 apache mysql 端口设置 2 个不同的端口吗?
- java - 重命名文件以按特定顺序按字母顺序排列它们?
- visual-studio-code - 在 VS Code 中自定义颜色?
- kotlin - 为什么 Kotlin 编译器不强制我初始化我在接口中定义的 val?
- git - 无法向主分支提交提交
- python - Dijkstra 在 Python 中的算法实现 - 它是如何工作的?