6

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

Double d = (Double) object;

或者

double d = (double) object;

4

1 回答 1

17

不同之处在于,如果为 null,则第一种形式将成功object-第二种将抛出NullPointerException. 因此,如果它为objectnull 有效,请使用第一个 - 如果这表示错误条件,请使用第二个。

这:

double d = (double) object;

相当于:

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

(或者只是((Double)object).doubleValue()为了清楚起见,我喜欢将这两个操作分开。)

请注意,转换为仅在 Java 7 下有效——尽管从Java 7 语言增强页面double中不清楚为什么这是真的。

于 2013-04-01T11:29:03.323 回答