You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IntelliJ中批量获取项目所有枚举类及其枚举值?

批量梳理项目枚举类及对应枚举值的自动化方案

完全不用手动逐个类排查,针对IntelliJ环境下的数百个枚举类梳理需求,有三个可直接落地的方案,按操作成本从低到高排列:

方案1:用IntelliJ自带结构搜索快速导出(零代码,5分钟搞定)

  • 打开全局结构搜索入口,快捷键默认是Ctrl+Shift+S(Windows)/Cmd+Shift+S(Mac),对应菜单路径是Edit > Find > Search Structurally
  • 搜索模板直接选择内置的enum classes规则,将搜索范围设置为Project Files(排除第三方依赖包、jar包中的类),执行搜索后就能得到当前项目所有枚举类的列表,支持直接全选导出为文本/HTML格式,拿到全量枚举类的全限定名清单
  • 如果需要同步导出每个枚举类下的枚举值,替换搜索模板为enum $EnumName$ { $CONSTANT$ },将模板中$CONSTANT$变量的匹配次数设置为「1次到无限次」,执行搜索后结果会自动按枚举类分组展示所有枚举常量,直接导出即可。

方案2:用IntelliJ内置脚本控制台一键生成自定义格式清单(10行代码,支持自定义输出格式)

如果需要输出固定格式的清单(比如Markdown、JSON、带枚举注释说明的文档),直接用IDE内置的脚本控制台跑PSI遍历脚本即可,不需要额外安装插件:

  • 打开菜单Tools > IDE Scripting Console,选择Groovy作为脚本语言,控制台会自动绑定当前打开的项目对象
  • 粘贴以下脚本直接执行,控制台会直接输出按Markdown格式排版好的枚举清单,复制即可用:
import com.intellij.openapi.application.ApplicationManager
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.psi.PsiEnumConstant

ApplicationManager.application.runReadAction {
    def scope = GlobalSearchScope.projectScope(project)
    def javaFacade = com.intellij.psi.JavaPsiFacade.getInstance(project)
    // 遍历项目源码范围内所有类
    javaFacade.findClasses("", scope).each { psiClass ->
        if (psiClass.isEnum()) {
            println "### 枚举类:${psiClass.qualifiedName}"
            psiClass.fields.each { field ->
                if (field instanceof PsiEnumConstant) {
                    println "- ${field.name}"
                }
            }
            println ""
        }
    }
}
  • 如果需要额外获取枚举的注释、枚举对应的字段值、构造参数等信息,直接在脚本里加对应PSI字段的读取逻辑即可,不需要额外做源码解析。

方案3:反射扫描(不依赖IDE,可集成到构建流程)

如果需要把枚举清单生成逻辑集成到项目的构建流程、文档自动生成流程里,可以用反射扫描编译产物的方式实现:

  • 给项目的构建脚本加个轻量的扫描任务,引入反射扫描工具包,扫描项目编译输出的classes目录
  • 调用扫描工具的getSubTypesOf(Enum.class)方法拿到所有项目内的枚举类,再通过反射调用每个枚举类的values()方法,就能拿到所有枚举实例的信息
  • 这种方式不会触发枚举类的业务逻辑,哪怕枚举有自定义构造方法、抽象方法也能正常扫描,没有安全风险。

注意:所有方案都要把扫描范围限定在当前项目的源码/编译产物目录,不要把第三方依赖的范围加进去,避免把框架、工具包里的枚举统计到清单里。

内容的提问来源于stack exchange,提问作者dellasavia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 20:06:39