Groovy以空格分隔的hashmap键

时间:2015-05-04 19:02:45

标签: java groovy hashmap

尝试回答一个简单的问题而没有任何运气在线搜索。

我正在学习Groovy并在网上看到了这段代码:

class Person {
    String name
    Person parent
    static belongsTo = [ supervisor: Person ]

    static mappedBy = [ supervisor: "none", parent: "none" ]

    static constraints = { supervisor nullable: true }
}

我特别关注Person班级的最后一行。 { supervisor nullable: true }是什么意思?这些多个键是否都链接到值true或其他东西?

谢谢!

1 个答案:

答案 0 :(得分:4)

这是以下内容的缩写:

static constraints = { 
    supervisor([nullable: true])
}

这意味着:定义一个名为constraints的类变量,它包含一个闭包(闭包是groovy中的第一类数据)。闭包(稍后调用)将执行./ / p>中的代码

代码中有一个DSL,用于配置后续数据库抽象的约束。所以supervisor是一个方法调用(该方法不存在,但DSL代表负责处理)。 The () maybe left out, if "unambiguous"。接下来,如果该方法将Map作为参数,则[]也可能被遗漏。

请注意,belongsTomappedBy是实际地图。