类型安全转换函数
2016-05-31 本文已影响88人
looper1211
在项目开发测试的过程中甚至上线后,程序的崩溃都是必然的,而类型转换引起的崩溃次数也是不在少数,常见的就包括类型转换异常引起的崩溃,比如通常对obj对象类型的转换,一般都是toString后进行转换,如下:
int num = Integer.valueOf(obj.toString());
试想一下,一旦obj为空,那么调用obj.toString肯定会报空指针错误,这个obj通常都是从Json数据中取出来的,对于服务端返回的json数据,是无法保证其永不为空的
比如好的做法是,编写一个类型安全转换函数convertToInt,实现代码如下,如果转换失败,就返回其默认值。
public final static int convertToInt(Object value,int defaultValue){
if(value==null || "".equals(value.toString().trim())){
return defaultValue;
}
try {
return Integer.valueOf(value.toString());
} catch (Exception e) {
try {
return Double.valueOf((value.toString())).intValue();
} catch (Exception e1) {
return defaultValue;
}
}
}
把这个方法就可以放到Utils类中,每当要把一个object对象转换为整型时,都使用该方法,这样就不会崩溃了。
int num = Utils.convertToInt(obj, 0);
以上只是其中一中类型安全转换函数,相应的,我们还需要在Utils中提供诸如object到long、double、float等类型的安全转换函数,以满足开发要求。