Groovy:在枚举中委托属性

时间:2012-04-02 11:02:47

标签: groovy

我在Groovy 1.8.5中有以下代码,对我来说它看起来有效。为什么会出错?

public enum Test
{
    ONE("meep"), TWO("jeep"), THREE("sheep");

    Test(String n)
    {
        this.n = n;
    }

    @Delegate String n;
}

println Test.ONE[1]
println Test.TWO[0] 

编辑1: 我有一些枚举对象,所以我想把它们放在枚举中。枚举的每个值代表那些对象的实例,那么为什么不将它们存储在那里呢?现在,groovy让我可以这样做,比如说Test.One.digits而不是Test.One.n.digits更方便。

当我尝试在eclipse中运行它时,我得到Exception in thread "main" java.lang.NoClassDefFoundError,我将其解释为未正确编译的类。我当时没有编译器消息......我正在研究它。

编辑2:

我让脚本在这里工作...... http://gppconsole.appspot.com/script/34001 所以我认为案件已经结案,问题不在于代码。

1 个答案:

答案 0 :(得分:1)

你得到什么错误?

public enum Test
{
    ONE(1), TWO(2), THREE(3);

    Test(Integer n)
    {
        this.n = n;
    }

    @Delegate Integer n;
}

println Test.ONE.n

在Groovy 1.8.6中工作......虽然我不确定在枚举中添加@Delegate是一件好事(我需要考虑更多)......

你想要达到什么目标?