我有一个关于遍历类成员并在groovy中更新对象的成员值的问题:
class Test {
String a
String b
Test(String a, String b) {
this.a = a
this.b = b
}
String toString() {
return "a is " + a + " b is " + b
}
}
我想遍历对象成员并更新该成员的值:
class Testing {
static void main(String[] args) {
Test test = new Test("hello", "world")
test.properties.findAll {
it.value.toString.equals('hello')
}.each {
it.setValue("new value")
}
}
}
我尝试将“ hello”的值更改为“新值”,看起来它可以找到包含“ hello”的成员,但是在it.setvalue()
之后的值相同,如何更改该对象中的成员的正确方式?
答案 0 :(得分:0)
更改属性不会影响字段值的更改。如果您想找到一个存储特定值的字段(例如hello
,并将其更改为其他值,则可以尝试使用在setProperty
对象上调用的test
方法来完成此操作。>
考虑以下示例:
class Testing {
static void main(String[] args) {
Test test = new Test("hello", "world")
test.properties.findAll {
it.value == 'hello'
}.each { field, _ ->
test.setProperty(field as String, "new value")
}
println test
}
}
输出:
a is new value b is world