类型安全转换函数

在项目开发测试的过程中甚至上线后,程序的崩溃都是必然的,而类型转换引起的崩溃次数也是不在少数,常见的就包括类型转换异常引起的崩溃,比如通常对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等类型的安全转换函数,以满足开发要求。

你可能感兴趣的:(类型安全转换函数)