我对groovy很新,而且我发现通过公开一个字段,groovy默认提供getter和setter。有没有办法让getter而不是默认的setter? 这背后的原因是我有一个Builder而且我不想提供对象字段的访问以进行修改。
答案 0 :(得分:5)
您可以设置字段final
并添加Canonical
转换,以便自动为您创建c'tor。或者甚至更容易使用Immutable
转换:
@groovy.transform.Immutable
class A {
String x
}
def a = new A("x")
assert a.x == "x"
// a.x = "will fail"
// a.setX("will fail")
在任何情况下,您都应该查看builder transforms
,它们为您的用例提供的内容。