工作紀實_04-空指針

空指針帶來的日常不可避免的一些問題

1.寫太多的if-else在程序提交給sona代碼質量檢測工具的時候,會遇到分析問題,提示方法的複雜度過高

for循環和if-else以及三目運算符都會增加方法的複雜度,複雜度越高,可讀性越低

2.隨着項目的迭代,項目的方法變得複雜不易讀,過多的if-else嵌套非常影響編碼格式帶來的閱讀問題,也會加大重構的難度

規避策略

1.前端傳入後臺參數時,利用@Valid或者@Validate做參數校驗控制

2.方法在使用到不應爲null的參數時,先校驗或者斷言

// 1.利用assert
ssert param != null;
// 2.利用Objects的靜態方法
Objects.nonNull(param, "xxx不能爲空")
// 3.guava包的靜態方法
Preconditions.checkNotNull等

3.提供公共的避免null取值的方法,最好是寫在工具類中

適用於系統特定的一些爲null的取值默認策略

4.使用lambda的Option靜態方法來替代三目運算符

5.拆解方法體,分散在各個方法中,增強可讀性,保留方法的主體處理流程即可

上層思想

1.設計之初,設置好每一個從數據庫中的默認值,哪些是必須有的值,少用if-else來判斷

2.不建議在實體類的get/set方法來處理null,會影響數據的初始狀態,容易產生不可預知的問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章