介面欄位轉實體是否為空判斷

2021-08-08 21:29:40 字數 1965 閱讀 6010

在開發中如果需要和第三方進行接**互,這時候對介面字段校驗就是必不可少的,對方如果少傳字段,或是必傳字段為空,如果我們不做判斷,很可能導致某個流程出錯

一般校驗無非就是以下這種處理方式

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表示 缺少值 就是此處應該有乙個值,但是還沒有...