3

Float の javadoc を調べましたが、構築後に値を変更する方法はないようです。

Float f = new Float(1.23f);
[...]
f.setValue(3.14f); // Nothing like this seems to exist...
f = 3.14f; // "f" now points to a new object, not what I want...

オブジェクトの値を変更する方法はありますか? あるいは、これを可能にする別のラッパー クラスはありますか?

4

3 に答える 3

5

の値は変更できませんFloat。プリミティブ ラッパー クラスはすべて不変です。この機能を追加したい場合は、独自の (変更可能な) ラッパー クラスを作成するかMutableFloat、Apache Commons から参照することができます。

于 2013-06-23T12:40:41.260 に答える
4

Float値オブジェクト (不変オブジェクト) です。

新しい値で新しい値を再インスタンス化せずにその値を直接変更しても意味がありません。

実際、Floatの概念はなくIdentity、純粋なVALUEであるため、変更可能な動作は必要ありません。

概念を理解するために、それはあなたに興味があるかもしれません:

http://devlicio.us/blogs/casey/archive/2009/02/13/ddd-entities-and-value-objects.aspx

于 2013-06-23T12:42:41.867 に答える
3

すべての java.lang パッケージ ラッパー クラスは不変です: Boolean、Byte、Character、Double、Float、Integer、Long、Short、String。

したがって、Float オブジェクトの値を変更するセッターやその他のメソッドはありません。

于 2013-06-23T12:41:24.740 に答える