Gau*_*tam 5 java casting primitive-types object-type
当我需要将一个类型的实例Object转换为double时,以下哪个更好,为什么?
Double d = (Double) object;
要么
double d = (double) object;
Jon*_*eet 14
不同之处在于,如果object为null ,则第一个表单将成功- 第二个表单将抛出一个NullPointerException.因此,如果它为objectnull,则使用第一个 - 如果表示错误条件,则使用第二个.
这个:
double d = (double) object;
Run Code Online (Sandbox Code Playgroud)
相当于:
Double tmp = (Double) object;
double t = tmp.doubleValue();
Run Code Online (Sandbox Code Playgroud)
(或者只是((Double)object).doubleValue()为了清晰起见,我喜欢将两个操作分开.)
请注意,强制转换double仅在Java 7下有效 - 尽管从Java 7语言增强页面中不清楚为什么这是真的.