新手Java程序猿,怎样在代码中避免空指针异常

那么,问题来了,我们这样的新手java,怎么在工作和代码中避免出现此类情况呢?

1) 从已知的String对象中调用equals()和equalsIgnoreCase()方法,而非未知对象。

总是从已知的非空String对象中调用equals()方法。因为equals()方法是对称的,调用a.equals(b)和调用b.equals(a)是完全相同的,这也是为什么程序员对于对象a和b这么不上心。如果调用者是空指针,这种调用可能导致一个空指针异常;如下:

示例1:
Object unknownObject = null;  
  
//错误方式 – 可能导致 NullPointerException  
if(unknownObject.equals("knownObject")){  
   System.err.println("This may result in NullPointerException if unknownObject is null");  
}  
  
//正确方式 - 即便 unknownObject是null也能避免NullPointerException  
if("knownObject".equals(unknownObject)){  
    System.err.println("better coding avoided NullPointerException");  
}

示例2:
String unknownStr = null;

//错误方式 – 可能导致 NullPointerException  
if(unknownStr .equals("knownObject")){  
   System.err.println("This may result in NullPointerException if unknownObject is null");  
}  
  
//正确方式 - 即便 unknownObject是null也能避免NullPointerException  
if("knownStr".equals(unknownStr)){  
    System.err.println("better coding avoided NullPointerException");  
}

 

转载于:https://my.oschina.net/weijuer/blog/1553245

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值