将Object的实例转换为基本类型或对象类型

时间:2013-04-01 11:26:44

标签: java casting primitive-types object-type

当我需要将类型Object的实例强制转换为double时,以下哪个更好,为什么?

Double d = (Double) object;

或者

double d = (double) object;

1 个答案:

答案 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开始并不清楚为什么这是真的。