gpt4 book ai didi

Groovy:有没有在参数拷贝后调用的构造函数?

转载 作者:行者123 更新时间:2023-12-05 00:03:56 26 4
gpt4 key购买 nike

我在 Groovy 中有这个代码:

class Person {
def age
Person () {
println age // null
}
}

def p = new Person ([age: '29'])
println p.age // 29

我需要在构造函数中读取年龄值,但尚未设置。

我怎样才能做到这一点?

注意:我不想每次都使用 init() 方法并手动调用,例如
class Person {
def age
def init() {
println age // now have 29
}
}

def p = new Person ([age: '29'])
p.init()
println p.age // 29

链接到 GroovyConsole .

谢谢!

最佳答案

您可以编写这样的构造函数:

class Person {
def age

Person(Map map) {
for (entry in map) {
this."${entry.key}" = entry.value
}
println age
}
}

如果您使用的是 groovy 1.8,请查看 @TupleConstructor 注释,它将自动构建一个像上面那样的构造函数,以及一个基于列表的构造函数。
import groovy.transform.TupleConstructor

@TupleConstructor
class Person {
int age
}

p = new Person([age: 99])
assert p.age == 99

关于Groovy:有没有在参数拷贝后调用的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6268683/

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