2013-08-28 80 views
6

看來,當涉及到* value.getFloat(「Value_Quotient」,quotient_Float)== null *時,它遇到了一個問題。我該如何解決?在Java中,如何檢查float變量是否爲空?

private void Store() { 
    quotient_Float = posture_error/time; 
    if(value.getFloat("Value_Quotient", quotient_Float)==null || quotient_Float < value.getFloat("Value_Quotient", quotient_Float)) 
    { 
     editor.putFloat("Value_Quotient", quotient_Float); 
     editor.commit(); 
    }   
} 
+9

'float'不能爲null。 'Float'可以是'null'。您的變量原始類型或引用類型是什麼? –

+0

http://docs.oracle.com/javase/tutorial/java/data/autoboxing.html –

+0

這很原始。 –

回答

18

floatprimitive數據類型,而不是一個object。空對象用於對象。對於基元,你應該使用默認值檢查。對於float,默認值是0.0f。

+0

[原始數據類型](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html) – CRUSADER

4

還有一個Float類,您可以使用。可以檢查Float對象的null作爲其float數據類型的對象表示形式。 A Float對象由國會大廈F表示,並且float數據類型具有小f。 Java的瓶坯自動裝箱,這意味着你可以輕鬆地切換回和第四兩者之間,即:

float number = 0.56f; 
Float object = number; 

或者周圍的其他方式:

Float object = new Float(1.43); 
float number = object; 

您也可以通過一個Float對象到方法數據類型爲float,或者相反。

如果檢查默認值不管什麼原因都不起作用,這將允許您檢查Float爲空。

if (object != null) { 
    // do what you want to do 
} 
0

可能有用的一些觀點(Java 8)。

浮點對象可以分配給一個浮點型圖元。然後浮原始可以是0檢查這樣的:

Float floatObj = new Float(0); 
    float floatPrim = floatObj; 

    if (floatPrim == 0) { 
     System.out.println("floatPrim is 0"); // will display message 
    } 

但是,如果你Float對象爲null,比其分配給原始將導致NPE

Float floatObj = null; 
    float floatPrim = floatObj; //NPE 

所以,要小心這裏

一更多的事情,顯然你可以在Float對象上使用==運算符,因爲autounboxing會發生。

Float floatObj = new Float(0.0f); 

    if (floatObj == 0) { 
     System.out.println("floatObj is 0"); // will work 
    } 
相關問題