2013-04-01 97 views

回答

12

不同的是,第一种形式会成功,如果object为空 - 第二个会抛出一个NullPointerException。因此,如果object的有效值为空,请使用第一个 - 如果它指示错误条件,请使用第二个。

此:

double d = (double) object; 

等同于:

Double tmp = (Double) object; 
double t = tmp.doubleValue(); 

(或者只是((Double)object).doubleValue()但我喜欢清晰分隔两个操作。)

注意,投给double是只在Java 7下有效 - 尽管从Java 7 language enhancements page不清楚为什么这是真的。

+2

你可以执行'double d =(double)(Double)object;'在1.7以前的版本中,这会抛出如果'object'为'null',则从'(double)'投射NPE。 –

+0

@ bmorris591:确实 - 或者直接调用'doubleValue()'。 –

+0

@ bmorris591:我在jdk 1.6和1.7中都得到了NPE! – Gautam

相关问题