【发布时间】:2015-10-13 17:32:31
【问题描述】:
请告诉我为什么下面的类是不可变的,正如 Java 并发实践中所讨论的那样 - 作者:Brian Goetz
@Immutable
public class Point {
public final int x, y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
由于类不是final,任何类都可以扩展它。但是为什么它仍然是不可变的?
【问题讨论】:
-
本可以完成,但这是唯一的变化。
-
我认为必须更清楚地说 Point 接口(又名“抽象”)是不可变的(
x和y属性),而子类可以添加其他可以可变的状态(或不)。
标签: java concurrency immutability