第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關(guān)于java方法參數(shù)的困惑

關(guān)于java方法參數(shù)的困惑

慕容708150 2019-01-19 00:30:03
/**獲取角色對應(yīng)權(quán)限*/ @RequestMapping("/listByRoleId") public CommonResult<List<MenuVo.ListByRoleIdVo>> listByRoleId(@Valid MenuParam.ListByRoleIdParam param){ return menuService.listByRoleId(param); } @Data public static class ListByRoleIdParam { @NotNull(message = "不能為空") private Integer roleId; } @Data public static class ListByRoleIdVo { private Integer menuId; private String name; //名稱 private Integer pid; //父id } 我現(xiàn)在項目里面使用上面這種形式來寫代碼.每個方法的參數(shù)定義成一個類.方法的返回值也定義成一個類.這樣寫主要是想使用valid來做參數(shù)校驗,將參數(shù)封裝成一個對象也方便使用反射來調(diào)用方法. 這樣就會導(dǎo)致項目里面有很多這種參數(shù)和返回值的類.請問這種寫法出了類定義的多點,還有什么不好的地方? 會影響性能嗎?
查看完整描述

4 回答

?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗 獲得超3個贊

謝邀。
有很多這種參數(shù)和返回值的類,其實即使你不做校驗用,也應(yīng)該這么寫,參數(shù)封裝成對象理所當(dāng)然,只不過很多類有業(yè)務(wù)重復(fù)的情況下可以抽象、繼承的方式來做。因為業(yè)務(wù)需求問題,校驗多種多樣,代碼這種bean變多,其實也沒什么影響,只想便于維護(hù)就好;

查看完整回答
反對 回復(fù) 2019-03-01
?
慕碼人2483693

TA貢獻(xiàn)1860條經(jīng)驗 獲得超9個贊

顯然是太靈話, 修改邏輯要重新定義類, 類的序列化緩存也要考慮升級時的版本兼容的問題.
要看有多少,幾十個的話不用太在意. 好處是有強類型驗證.

如果很多的話建議還是用抽象的Map來存參數(shù). 這樣可以把參數(shù)與邏輯剝離.

查看完整回答
反對 回復(fù) 2019-03-01
?
揚帆大魚

TA貢獻(xiàn)1799條經(jīng)驗 獲得超9個贊

3個以內(nèi)用url傳參數(shù),3個以上用對象

查看完整回答
反對 回復(fù) 2019-03-01
?
慕容3067478

TA貢獻(xiàn)1773條經(jīng)驗 獲得超3個贊

如果確實有這個需求的話,不為特定的接口參數(shù)寫對應(yīng)的數(shù)據(jù)類,也得寫一串JSON解析代碼,相較而言寫類是更好的方式。
也可以考慮使用GraphQL來設(shè)計接口的參數(shù),不過也要寫Scheme,但是更為靈活

查看完整回答
反對 回復(fù) 2019-03-01
  • 4 回答
  • 0 關(guān)注
  • 716 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號