对于一个Object类型的对象,当其为null的时候程序就会崩溃。
比如,我们经常会写出下面这样的程序:
int result=Integer.valueOf(obj.toString())
一旦obj这个对象为null,那么上面这行代码会直接崩溃。
这里的obj,一般是从JSON数据中取出来的,我们无法保证其永远不为空。
所以最好的做法就是,我们编写一个类型安全转换函数converToInt,实现如下,其核心思想就是,如果转换失败,就返回默认值:
public final static int converToInt(Object value,int defaultValue){ if(value==null||"".equals(value.toString().trim())){ return defaultValue; } try { return Integer.valueOf(value.toString()); } catch (Exception e) { // TODO: handle exception try { return Double.valueOf(value.toString()).intValue(); } catch (Exception e2) { // TODO: handle exception return defaultValue; } } }
我们将这个方法放到Utils类下面,每当要把一个Object对象转换成整型时,都使用该方法,就不会崩溃了:
int result=Utils.converToInt(obj,0);