软件工程实践者

统计

留言簿

友情链结

阅读排行榜

评论排行榜

Groovy:Invalid duplicate class definition of class....The type xxx is already defined..

当我们写Groovy脚本代码的时候,有时会发生编译错误,如下:

- Groovy:Invalid duplicate class definition of class XXX : The source XXXX\XXX.groovy contains at least two 
definitions of the class XXX.
- The type XXX is already defined

原因在于Groovy会把.groovy代码文件作为脚本或类定义来处理,例如如下代码:

class Order {
    def security
    def value
    private buy_sell(su, closure) {
        security = su[0]
        quantity = su[1]
        closure()
    }
    def getTo() {
        this
    }
}
def methodMissing(String name, args) {
    order.metaClass.getMetaProperty(name).setProperty(order, args)
}
def getNewOrder() {
    order = new Order()
}

Integer.metaClass.getShares = { -> delegate }

Groovy会把上述代码作为脚本处理,同时缺省用文件名来作为一个外围类类包括整个脚本程序,此时,如果该文件名恰好也是Order的话,那么就会出现重复的类定义错误提示。
解决办法是将脚本文件名取另外一个不同的名字。

posted on 2016-08-31 09:00 软件工程实践者 阅读(1030) 评论(0)  编辑  收藏 所属分类: 软件设计


只有注册用户登录后才能发表评论。


网站导航: