避免空指針的幾個寫法
equals
Object的equals方法是方法是對稱的,調用a.equals(b)和調用b.equals(a)是完全相同的,這也是為什么程序員對于對象a和b這么不上心。但是要注意a == null時會拋出空指針異常。
例如:
Object unknownObject = null;
if(unknownObject.equals("knownObject")){
}
所以我寧愿把確定不為null的對象放在前面。
valueOf()和toString()
因為調用null對象的toString()會拋出空指針異常,如果我們能夠使用valueOf()獲得相同的值,那寧愿使用valueOf(),傳遞一個null給valueOf()將會返回“null”,尤其是在那些包裝類,像Integer、Float、Double和BigDecimal。
例如:
BigDecimal bd;
System.out.println(String.valueOf(bd)); //不會拋出空指針異常
System.out.println(bd.toString()); //拋出 "Exception in thread "main"
避免從方法中返回空指針,而是返回空collection或者空數(shù)組。
盡可能返回一個空集合和空數(shù)組而不是返回null。