JAVA类型转换所引起的系统崩溃

抛出空指针java.lang.NullPointerException的异常所导致的系统崩溃,很多情况下是由于类型转换错误所引起的,本文所举得的例子,是笔者在开发过程中经常碰到的,

Date转String

原始代码

//获取一个订单
Order order = getOrder();
//获取订单的送货时间,并转换为String
String strCreateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(order.getSendTime());

一般而言,订单的送货时间都是从数据库中取出的,现在我们假设写生成订单的哥们比较偷懒,程序健壮性一般,new Order时,sendTime设为NULL,那么以上代码就会直接抛java.lang.NullPointerException异常导致系统或APP直接崩溃。

修改后代码

if(order.getSendTime()!=null){
    String strCreateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(order.getSendTime());
}

Object转String

原始代码

//获取一个订单
Order order = getOrder();
//获取订单的送货时间,并转换为String
String strOrder= order.toString();

以上代码,一旦order对象为空,那么系统就直接奔溃了。

修改后的代码

if(order==null || order.toString().trim().equals("")){
    strOrder= "";
}else{
    strOrder= order.toString();
}

字符串截取

原始代码

String orderNo = "H20160325010";
String orderType = orderNo.substring(0,1);

以上代码,如果orderNo不小心传了一个空字符串进来,就会抛异常。
修改后的代码

String orderNo = "H20160325010";
if(orderNo.length()>0){
    String orderType = orderNo.substring(0,1);
}

总结,我们在转换类型或者对字符串操作时,都应该注意,事先做个判断,以免引起崩溃。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值