先看下面的代码
public static void main(String[] args) {
Map
map.put("key", 36D);
Object object = map.get("key2");
// 转为Double
Double d1 = (Double) object;
System.out.println(d1); // null
// 转为double
double d2 = object == null ? 0 : Double.parseDouble(object.toString());
System.out.println(d2); // 0.0
Double d3 = d1 + d2; // or double d3 = d1 + d2; NullPointerException
System.out.println(d3);
}
目前我使用两种转换方式
1)转为 Double ,object 为null时,d1 也为 null
2)转为 double ,object 为null时,d2 为 0.0
对于第一种 d1,假若需要使用d1的值去计算,则会空指针异常
对于第二种 d2,则需要对object判空并赋零值,把原来的 null 改为 0 了。
所以有没有其他更好的实现方式呢?还是使用 d1或d2?
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2715/viewspace-3121504/ ,如需转载,请注明出处,否则将追究法律责任。