2013-06-23 36 views
2

我已经查看了Float的javadoc的内部,但似乎没有任何方法来修改构造后的值?Java:更改Float对象的值

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

浮动(像其他拳击班)是不可改变的。你可以尝试用反射来改变它的价值,但我不确定这是否是你想要的。无论如何,你为什么要改变它?你真正的问题是什么?也许有办法。 – Pshemo

+0

你写的是什么问题:'f = 3.14f'? – Maroun

+1

如果你想要一个可变浮动包装器(并且不需要它从浮点派生),最简单的方法是使用浮点数的一个元素数组。 –

回答

5

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

3

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

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