优雅的避免空指针的示例
生活随笔
收集整理的這篇文章主要介紹了
优雅的避免空指针的示例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1) 從已知的String對象中調(diào)用equals()和equalsIgnoreCase()方法,而非未知對象。DEMO:String str = null;str.equals("value"); ?===> "value".equals(str);
2) 當(dāng)valueOf()和toString()返回相同的結(jié)果時,寧愿使用前者。
BigDecimal bd = new BigDecimal();bd.toString() ;?=====> String.valueOf(bd);public static void main(String[] args) {
Object o = null;
String s = String.valueOf(o); -- 不會出空指針
s = o.toString(); -- 空指針
System.out.println(s);
}String.valueOf源碼:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
5)使用包裝類型做參數(shù)傳遞和映射.6) 為entity指定默認(rèn)值 比如電話號碼默認(rèn)為000000000007) 定義數(shù)據(jù)庫中字段是否可以為空.做好非空約束, 避免程序中判斷!=null
來源:?http://blog.csdn.net/kuyuyingzi/article/details/16973429
來自為知筆記(Wiz)
2) 當(dāng)valueOf()和toString()返回相同的結(jié)果時,寧愿使用前者。
BigDecimal bd = new BigDecimal();bd.toString() ;?=====> String.valueOf(bd);public static void main(String[] args) {
Object o = null;
String s = String.valueOf(o); -- 不會出空指針
s = o.toString(); -- 空指針
System.out.println(s);
}String.valueOf源碼:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
3) 使用null安全的方法和庫?有很多開源庫已經(jīng)為您做了繁重的空指針檢查工作。其中最常用的一個的是Apache commons 中的StringUtils。你可以使用StringUtils.isBlank(),isNumeric(),isWhiteSpace()以及其他的工具方法而不用擔(dān)心空指針異常。
StringUtils方法是空指針安全的,他們不會拋出空指針異常System.out.println(StringUtils.isEmpty(null));System.out.println(StringUtils.isBlank(null));System.out.println(StringUtils.isNumeric(null));System.out.println(StringUtils.isAllUpperCase(null));4) 避免從方法中返回空指針,而是返回空collection或者空數(shù)組。
這個Java最佳實(shí)踐或技巧由Joshua Bloch在他的書Effective Java中提到。這是另外一個可以更好的使用Java編程的技巧。通過返回一個空collection或者空數(shù)組,你可以確保在調(diào)用如size(),length()的時候不會因?yàn)榭罩羔槷惓1罎ⅰollections類提供了方便的空List,Set和Map: Collections.EMPTY_LIST,Collections.EMPTY_SET,Collections.EMPTY_MAP。這里是實(shí)例。
public?List getOrders(Customer customer){????List result = Collections.EMPTY_LIST;????return?result;}你同樣可以使用Collections.EMPTY_SET和Collections.EMPTY_MAP來代替空指針。
5)使用包裝類型做參數(shù)傳遞和映射.6) 為entity指定默認(rèn)值 比如電話號碼默認(rèn)為000000000007) 定義數(shù)據(jù)庫中字段是否可以為空.做好非空約束, 避免程序中判斷!=null
來源:?http://blog.csdn.net/kuyuyingzi/article/details/16973429
來自為知筆記(Wiz)
轉(zhuǎn)載于:https://www.cnblogs.com/duenboa/p/6665339.html
總結(jié)
以上是生活随笔為你收集整理的优雅的避免空指针的示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue.js 表单校验插件
- 下一篇: ##6.2 Neutron计算节点--