给予课程
class A {
def String name = ''
def String lower = ''
}
可以使用带有命名参数的构造函数
new A(name: 'Alice', lower: 'alice')
我不想指定较低的参数,因为它总是等于name.toLowerCase()
如何实现此构造函数? 所以在打电话之后:
def a = new A(name: 'Alice')
println "${a.lower}"
alice将被打印
答案 0 :(得分:1)
我不确定,你真的在这之后。如果你真的只需要一些魔法,请告诉我们。但最常见的解决方法是:
计算lower
,何时需要
String getLower() { name.toLowerCase() }
覆盖name
class A {
String name = ''
private String lower = ''
void setName(String name) {
this.name = name
this.lower = name?.toLowerCase()
}
String getLower() { lower }
}
def a = new A(name: 'Charlie')
assert a.lower == 'charlie'