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

Can I have just getters and not setter?

我对 groovy 很陌生,我发现通过创建字段 public,groovy 默认提供 getter 和 setter。有没有办法在默认情况下只有 getter 而没有 setter? 这背后的原因是我有一个生成器,我不想提供对对象字段的访问权限以供修改。

您可以创建字段 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,他们为您的用例提供了什么。