2013-04-01 167 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

相關問題