groovy - 我可以只有 getter 而不是 setter 吗?

标签 groovy default setter getter

我对 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/

相关文章:

groovy - 如何从 Gradle 0.6 引用类路径

regex - Groovy replaceAll 替换包含美元符号的地方?

css - 更改单选按钮的颜色(默认并选中)

c# - 默认发起成员(member)的结果是什么! C# .net 中的语句?

string - 在 Groovy 语言中如何根据字符串中的值和位置替换字符串中的字符

javascript阻止enterKey添加新行

php - 如何在 PHP 中获取函数的参数名称?

Java Reflection - 从 set 方法中获取字段的名称

c++ - setter 和 getter/类

groovy - 在Elasticsearch查询中使用groovy脚本* file *-groovy脚本文件位置