Java:更改Float对象的值

时间:2013-06-23 12:37:09

标签: java

我查看了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...

有没有办法改变对象的价值?或者,是否有另一个可用的包装类允许这个?

3 个答案:

答案 0 :(得分:5)

您无法更改Float的值;所有原始包装类都是不可变的。如果要添加此功能,可以创建自己的(可变的)包装类,或者从Apache Commons查看MutableFloat

答案 1 :(得分:4)

Float是一个值对象(不可变对象)。

如果没有使用新值重新实现新的值,则更改direclty的值是没有意义的。

事实上,Float没有Identity的概念,它只是一个纯粹的 VALUE ,因此不需要可变的行为。

理解这个概念可能会引起你的兴趣:

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

答案 2 :(得分:3)

  

所有java.lang包裹包装类都是不可变的:Boolean,   字节,字符,双精度,浮点数,整数,长,短,字符串。

因此,没有setter或任何其他方法来更改Float对象的值。