在documentation/section 14.4中,我遇到了以下代码示例:
task configure << {
def pos = configure(new java.text.FieldPosition(10)) {
beginIndex = 1
endIndex = 5
}
println pos.beginIndex
println pos.endIndex
}
pos
和configure
的含义并不十分清楚。我认为configure只是一个属性,所以我们可以编写像
println configure.beginIndex
但该行会导致编译时错误。和
{
beginIndex = 1
endIndex = 5
}
只是一个闭包,是吗?
答案 0 :(得分:1)
configure()
是gradle Project
对象的a method。该方法的文档解释了它的作用:
对象配置(Object object,Closure configureClosure)
通过闭包配置对象,并将闭包的委托设置为提供的对象。这样您就不必多次指定配置语句的上下文。
而不是:
MyType myType = new MyType() myType.doThis() myType.doThat()
你可以这样做:
MyType myType = configure(new MyType()) { doThis() doThat() }
因此,手动代码段定义了FieldPosition
类型的对象,将其分配给变量pos
,使用闭包设置其beginIndex
和endIndex
属性,这要归功于Project的configure()
方法,然后打印这些属性。
这是一个毫无意义的示例,展示了如何使用gradle DSL配置对象的多个属性。