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

Tav*_*avo 4 getter setter groovy default

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

cfr*_*ick 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")
Run Code Online (Sandbox Code Playgroud)

在任何情况下,您都应该查看builder transforms它们为您的用例提供的内容.