2012-04-11 100 views
0

我只是檢查一個雙變量的值是否爲null,奇怪的是,一個錯誤 引發說「operator ==未定義爲雙」?檢查double類型的變量是否爲null,生成錯誤

代碼

public double getGyro_X() { 
    if (this.gyro_X == null) { 
     Toast.makeText(this, ""+gyro_XIsNullText, ToastdurationShort).show(); 
    } else { 
    return this.gyro_X; 
    } 
} 
+1

gyro_X是雙''還是'雙'? – Mat 2012-04-11 07:55:10

+0

對,'double'是一個原始類型,而'Double'是一個對象。 – 2012-04-11 07:56:39

+0

如果您不想將基元更改爲Double對象(如下所示),則可以考慮將其初始化爲您認爲「無效」的某個值。例如,你可以將它設置爲['Double.Nan'](http://developer.android.com/reference/java/lang/Double.html#NaN),它實際上是* Not-a的常量(primitive)'double'類型的-Number *值,並檢查你的方法(而不是null)。 – 2012-04-11 08:04:18

回答

1

double接着類型的其類型不是Double ..和雙的,並且不能爲空

1

this.gyro_X apparantly是一個實例變量,它會被自動初始化爲0.

如果您希望能夠檢查null,則必須使用Double(= double的封裝類)。

只是爲了清楚起見:雙打是原始的,雙打是對象。基元不能爲空,所以你不能將它們與null進行比較。對象可以與null比較。