在開發中如果需要和第三方進行接**互,這時候對介面字段校驗就是必不可少的,對方如果少傳字段,或是必傳字段為空,如果我們不做判斷,很可能導致某個流程出錯
一般校驗無非就是以下這種處理方式
if(requestvo.getname == null || requestvo.getname.equals(""));
當然這種處理方式是沒有問題的,但是如果我們的介面中好幾十個必傳字段呢?如果是20 個字段,每個字段校驗最少2行,那就是40行的**,這就是我們不想要的了
下面來介紹另一種處理方法,使用註解反射的方式來校驗字段
1、定義註解,作用在方法
@retention(retentionpolicy.runtime)
@target(elementtype.method)
public @inte***ce
required
2、要校驗的實體類
public
class
student
public
void
setname(string name)
@required
public string getage()
public
void
setage(string age)
@required
public string getgender()
public
void
setgender(string gender)
}
3、註解工具類
public
class
annotionutils }}
} catch (exception e)
return message.tostring();
} /**
* 註解在方法上
*/public
static string validatemethod(object obj) ) == null
|| string.valueof(method.invoke(obj, new object {})).trim().equals("")) }}
} catch (exception e)
return message.tostring();
} /**
* 分割 get 方法獲取字段
*/private
static string splitgetmethod(string methodname)
methodname = methodname.trim();
if (methodname.startswith("get") && methodname.length() > 3) else
}}
4、測試
public
class tmain
5、測試結果
6、總結
不需要使用 if 來判斷字串是否空了,不管欄位有多長,一行**就搞定所有欄位的為空校驗,**看起來就舒服多了
示例中我們使用了註解在方法上,當然我們也可以把註解放到欄位上,類似下面這樣
這樣實體類的**看起來清晰很多,註解在字段上也可以進行校驗在 annotationutil 中也做了支援,但推薦使用註解在方法上,在方法上的效率比字段上要高出很多
這只是乙個校驗的示例,如果用在其他專案裡,可能需要進行一定的修改,不過如果大家體會到這種處理思想,相信改起來也費不了多大功夫
sql判斷字段是否為空
每個專案產品都要加埋點,加500行埋點是不是會占用你一兩天的時間而且很容易犯錯,想只用一小時準確加完這500行埋點剩下一天喝茶聊天麼?來試試這520工具,高效加埋點,目前我們公司100號前端都在用,因為很好用,所以很自然普及開來了,推薦給大家吧 sql語句條件查詢時,有時會判斷某個字段是否為空。字段...
volecity判斷欄位為空
方法 1 對null和false有效 if car.fuel 方法 2 對null和 有效 if car.fuel 如果判斷欄位為空 if car.fuel 組合 方法 1 and 2,判斷字段只能是null if car.fuel car.fuel 方法 4 使用工具檢測,詳見 if null.i...
JQuery判斷是否為空
有如下三種判斷 var a val if a null a undefined a 這裡解釋一下null與undefined和 的區別 null 空物件 不是物件,轉為數值為0 undefined 全域性物件window的乙個特殊屬性.undefined表示 缺少值 就是此處應該有乙個值,但是還沒有...