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

Groovy中switch语句执行Enum分支异常问题咨询

问题:Groovy中switch执行枚举分支不符合预期?

我平时很少在Groovy中使用枚举(enum),但以下代码的运行结果不符合预期:

enum Enum{ A, B }

def e = Enum.A

switch(e) {
    case Enum.A:
        println("A: ${Enum.A.isCase(e)}")
    case Enum.B:
        println("B: ${Enum.B.isCase(e)}")
}

该代码输出:

A: true
B: false

我是否误用了枚举?为何switch语句中Enum.B分支会被执行?

编辑补充

感谢各位解答!我已修改问题,此问题与枚举无关,是我对switch语句的理解存在不足。该行为与Java switch一致,我此前并未意识到未匹配的分支也会被执行:

所有匹配case标签后的语句会依次执行,无论后续case标签的表达式如何,直到遇到break语句

看来我得检查一下工作中的相关代码了...


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 20:32:04