Groovy:意外的令牌“:”

时间:2015-03-02 22:07:23

标签: groovy

我有这些自动生成的代码行:

EPRole validator: { EPRole r, EPUserEPRole ur ->
            if (ur.EPUser == null) return
            boolean existing = false
            EPUserEPRole.withNewSession {
                existing = EPUserEPRole.exists(ur.EPUser.id, r.id)
            }
            if (existing) {
                return 'userRole.exists'
            }
        }

当我尝试编译代码时,我得到82: unexpected token: validator @ line 82, column 10.

我是groovy的新人,所以任何帮助都表示赞赏。

1 个答案:

答案 0 :(得分:2)

您应该将具有正确类型和名称的属性添加到类中。首字母大写是针对类(或一般类型)。所以你的EPUserEPRole应该有这样的属性:

EPRole epRole

然后为epRole添加验证器。注意这个案例。

上面的代码会使groovy解析器混淆定义validator类型的属性EPRole,后跟:,因此错误(或者它会尝试调用方法EPRole地图,取决于上下文)。