我可以只有吸气剂而不是 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
,他们为您的用例提供了什么。
我对 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
,他们为您的用例提供了什么。