在Groovy中枚举内部的枚举永远循环,为什么?

时间:2018-02-08 07:05:56

标签: groovy enums

假设以下代码:

enum Color {
    RED,
    GREEN,
    BLUE
    enum Type {
        RGBA,
        RGB,
        BGR
    }
    String getHex() {
        //something here
        return "#F00"
    }
    Type getType() {
        //something here
        return Type.RGB
    }
}
println Color.RED.type.name()

我认为嵌套enum是可能的,但如果你尝试用groovy运行这段代码(使用2.4.13),它似乎永远循环,它永远不会执行或编译它。

如果我将枚举Type放在外面,它可以正常工作。

为什么会这样?是否有任何参考资料可以解释它失败的原因?

1 个答案:

答案 0 :(得分:4)

这是一个已知的错误

https://issues.apache.org/jira/plugins/servlet/mobile#issue/GROOVY-4438

如果你使用新的" parrot"它是固定的。解析器,在Groovy 2.6+中是可选的,默认情况下在Groovy 3中启用