我可以拥有吸气剂而不是吸气剂吗?

时间:2015-02-22 12:03:22

标签: groovy default setter getter

我对groovy很新,而且我发现通过公开一个字段,groovy默认提供getter和setter。有没有办法让getter而不是默认的setter? 这背后的原因是我有一个Builder而且我不想提供对象字段的访问以进行修改。

1 个答案:

答案 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,它们为您的用例提供的内容。