gpt4 book ai didi

groovy - 对象定义或方法调用?

转载 作者:行者123 更新时间:2023-12-03 05:16:24 25 4
gpt4 key购买 nike

documentation/section 14.4中,我遇到了以下代码示例:

task configure << {
def pos = configure(new java.text.FieldPosition(10)) {
beginIndex = 1
endIndex = 5
}
println pos.beginIndex
println pos.endIndex
}

目前尚不清楚 posconfigure的含义。我以为configure只是一个属性,所以我们可以写类似
println configure.beginIndex

但是该行会导致编译时错误。和
{
beginIndex = 1
endIndex = 5
}

只是一个封闭,是吗?

最佳答案

configure()是gradle Project对象的a method。此方法的文档解释了它的作用:

Object configure(Object object, Closure configureClosure)

Configures an object via a closure, with the closure's delegate set to the supplied object. This way you don't have to specify the context of a configuration statement multiple times.

Instead of:

MyType myType = new MyType()
myType.doThis()
myType.doThat()

you can do:

MyType myType = configure(new MyType()) {
doThis()
doThat()
}

因此,借助于Project的 FieldPosition方法,手动代码段定义了 pos类型的对象,将其分配给变量 beginIndex,使用闭包设置其 endIndexconfigure()属性,然后打印这些属性。
这是一个毫无意义的示例,显示了如何使用gradle DSL配置对象的多个属性。

关于groovy - 对象定义或方法调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28134369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com