>>413-414
不変オブジェクトのために、constは要らないと思う。
クラスの中に可変フィールドがあってもいいのよ、不可視なら。

例えば java.lang.String は不変オブジェクトだけど、
#hashCode() をキャッシュするために private int hash; って可変フィールドがある。

結局現状のJavaの仕組みだと、オブジェクトが不変かどうか、作者しか解らないんだよね…。
しかも「不変かどうか」ってのはJavaでは超重要で、間違えるとCollectionがぶっ壊れるという……。

>>413
自分で自由に書けるときは、「原則として不変オブジェクトとする」っていう俺ルールで書いてる。
Box myBox = srcBox.x(10).y(20).width(30).height(40); みたいに。
内部値を変更する代わりに内部で毎回newして返すんだけど、マルチスレッドも楽に書ける。
代わりにGCが頑張ってくれる。