使用Double.isNaN方法引发的问题
想要判断一个double是不是NaN,以下是JDK源码:
/**
* Returns {@code true} if the specified number is a
* Not-a-Number (NaN) value, {@code false} otherwise.
*
* @param v the value to be tested.
* @return {@code true} if the value of the argument is NaN;
* {@code false} otherwise.
*/
public static boolean isNaN(double v) {
return (v != v);
}
由于粗心,传给这个方法的类型是Double对象,所以会自动拆箱。
碰巧的是调用方传过来的这个Double类型的参数是null,导致程序报错。
因为自动拆箱会调用null.doubleValue()
本文深入探讨了在Java中使用Double.isNaN方法判断数值是否为NaN时遇到的问题。当传入参数为null的Double对象时,自动拆箱将触发NullPointerException。文章通过此案例提醒开发者注意类型检查的重要性。
1万+

被折叠的 条评论
为什么被折叠?



