如何寫出優美的代碼——1 Null和工具類的複用

1.不要把業務邏輯和非業務邏輯混合

多思考一下,儘量不要有錯誤的邏輯,和漏掉的情形

常見的邏輯:

(1)字符串的爲空判斷

if(s == null || s.length() <= 0);

如果 String 類型爲null, 而去進行 equals(String) 或 length() 等操作會拋出java.lang.NullPointerException.

(2)對象是否爲空判斷

public static boolean isNullOrEmpty(Object obj) {
if (obj == null)
return true;

if (obj instanceof CharSequence)
return ((CharSequence) obj).length() == 0;

if (obj instanceof Collection)
return ((Collection) obj).isEmpty();

if (obj instanceof Map)
return ((Map) obj).isEmpty();

if (obj instanceof Object[]) {
Object[] object = (Object[]) obj;
if (object.length == 0) {
return true;
}
boolean empty = true;
for (int i = 0; i < object.length; i++) {
if (!isNullOrEmpty(object[i])) {
empty = false;
break;
}
}
return empty;
}
return false;
}

(3)時間上的判斷

閏年產生的一系列時間計算的邏輯

/**
* 判斷某年某月有多少天
*
* @param year month
* 年 月
* @return count
*/
public static int getYearMonthDaysCounts(int year,int month) {

int count = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
count =31;
break;
case 2:
count = isLeapYear(year)?29:28;
break;
default:
count = 30;
break;
}
return count;
}

等等。如果再遇到自己總結下吧。

2.非業務邏輯的代碼儘量構建成方法去複用

這樣類似的邏輯會多次出現,如果你在業務中寫了很多相似的代碼,是處理的非業務邏輯相關的,

那麼你就需要考慮下怎麼去把這一塊抽象出來然後複用。這樣代碼的層次行就很清楚了,後期維護修改的話就會很

輕鬆,你只用找到邏輯有問題的那一塊來修改,而不是大篇幅的去分析。

3.這些非邏輯的代碼通常表現爲工具類

各種utils,這裏你需要去學習很多別人寫的好的代碼

還需要你自己去寫一些去積累下來。

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