场景
int result = Integer.valueOf(obj.toString());
上面这行代码,在obj对象为空的情况下,会直接崩溃;
而这里的obj,一般情况下是从json数据中取出来的,而且对于这种API接口,我们无法保证其永远不为空。
解决
所以这里我们编写一个类型安全转换函数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;
}
}
}
这样就可以在obj对象为空的情况下,防止应用因解析对象为空而奔溃的情况了
By the way
有问题?可以给我留言或私聊
有收获?那就顺手点个赞呗~
当然,也可以到我的公众号下「6曦轩」,
回复“学习”,即可领取一份
【Java工程师进阶架构师的视频教程】~
回复“面试”,可以获得:
【本人呕心沥血整理的 Java 面试题】
回复“MySQL脑图”,可以获得
【MySQL 知识点梳理高清脑图】
由于我咧,科班出身的程序员,php,Android以及硬件方面都做过,不过最后还是选择专注于做 Java,所以有啥问题可以到公众号提问讨论(技术情感倾诉都可以哈哈哈),看到的话会尽快回复,希望可以跟大家共同学习进步,关于服务端架构,Java 核心知识解析,职业生涯,面试总结等文章会不定期坚持推送输出,欢迎大家关注~~~