2012-04-11 94 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比较。