2012-04-02 96 views
1

我在Groovy 1.8.5中有以下代码,对我来说它看起来有效。为什么这会给出错误?Groovy:在枚举中委托属性

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

你会得到什么错误?

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来枚举是做(我需要想一想更多)一件好事......

你想达到什么目的?

+0

有趣的是,Eclipse甚至没有显示错误,所以我还没有弄清楚实际的错误信息是什么。红色图标显示在文件图标上,但是当我尝试运行它时,它说它会给出“java.lang.NoClassDefFoundError”,我认为我的类没有正确构建。我会尝试使用更新版本的Groovy – Nubsis 2012-04-02 11:18:44