2013-06-23 38 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對象的值。