当我需要将类型Object
的实例强制转换为double时,以下哪个更好,为什么?
Double d = (Double) object;
或者
double d = (double) object;
答案 0 :(得分:14)
不同之处在于,如果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开始并不清楚为什么这是真的。