【发布时间】:2011-08-03 14:05:49
【问题描述】:
我需要一个小的容器类来存储一些应该是不可变的字符串。由于 String 本身是不可变的类型,所以我想到了类似的东西:
public final class Immu
{
public final String foo;
public final String bar;
public Immu(final String foo, final String bar)
{
this.foo = foo;
this.bar = bar;
}
}
许多人似乎根本反对使用公共字段,而是使用 Getter。恕我直言,在这种情况下这只是样板,因为 String 本身是不可变的。
我可能在这个问题上遗漏了其他想法?
【问题讨论】:
-
有同样的问题,我喜欢这个答案,但要注意:这就是我喜欢 Scala 的地方,从 val 开始,然后更改为 getter,签名保持不变,添加到“在 Scala 中不会被问到的 java 问题”列表
-
这就是我喜欢 Kotlin 的地方:
data class Immu(val foo: String, val bar: String),你就完成了。没有冗余,没有关于技术选择的无休止讨论。
标签: java immutability