我对 groovy 很陌生,我发现通过公开一个字段,groovy 默认提供 getter 和 setter。有没有办法默认只有 getter 而不是 setter?
这背后的原因是我有一个 Builder 并且我不想提供对对象字段的访问以进行修改。
最佳答案
您可以制作字段 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
,他们必须为您的用例提供什么。
关于groovy - 我可以只有 getter 而不是 setter 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28657571/