如何优化从Map获取值并赋值给对象的代码?

如何优化从map获取值并赋值给对象的代码?

提升代码效率:优化Map值到对象属性的赋值

本文将演示如何优化一段将Map请求参数赋值给对象的代码,该代码存在冗余的从Map中获取值并逐个赋值给对象属性的问题。原始代码如下:

@RequestMapping(value = "/v1/update/tmPara", method={ RequestMethod.POST })public ResponseResult updateTmParaV1 (        HttpServletRequest request,        @RequestBody Map tmDdDicSetMap) {    // ... 省略部分代码 ...    TmPara tmPara = new TmPara();    tmPara.setParId(String.valueOf(tmDdDicSetMap.get("parId")));    tmPara.setParNam(String.valueOf(tmDdDicSetMap.get("parNam")));    tmPara.setParVal(String.valueOf(tmDdDicSetMap.get("parVal")));    tmPara.setRemark(String.valueOf(tmDdDicSetMap.get("remark")));    tmPara.setRecStaDat(String.valueOf(tmDdDicSetMap.get("recStaDat")));    tmPara.setRecStpFlg(String.valueOf(tmDdDicSetMap.get("recStpFlg")));    tmPara.setRecStpDat(String.valueOf(tmDdDicSetMap.get("recStpDat")));    tmPara.setRecSta(String.valueOf(tmDdDicSetMap.get("recSta")));    tmPara.setBusSta(String.valueOf(tmDdDicSetMap.get("busSta")));    // ... 省略部分代码 ...}

这段代码重复使用String.valueOf(tmDdDicSetMap.get(...)),显得冗长且难以维护。

利用Spring MVC特性优化代码

为了简化代码,我们可以直接利用Spring MVC特性,避免使用Map接收请求参数。 我们可以直接将请求体映射到TmPara对象上。

优化后的代码:

只需将@RequestBody Map tmDdDicSetMap替换为@RequestBody TmPara tmPara。如果请求体字段名与TmPara属性名不一致,可以使用@JsonProperty注解进行映射。

例如,如果请求体字段名为par_id,而TmPara属性名为parId,则需在TmPara类中添加注解:

public class TmPara {    @JsonProperty("par_id")    private String parId;    // ... 其他属性 ...}

通过此优化,Spring MVC会自动将请求体数据映射到TmPara对象,避免了手动从Map中获取值并赋值的冗余步骤,使代码更简洁、易读且不易出错。

@RequestMapping(value = "/v1/update/tmPara", method={ RequestMethod.POST })public ResponseResult updateTmParaV1 (        HttpServletRequest request,        @RequestBody TmPara tmPara) {    // ... 省略部分代码 ...    int tmParaUpdateFlag = tmParaService.updateTmParaV1(tmPara);    // ... 省略部分代码 ...}

以上就是如何优化从Map获取值并赋值给对象的代码?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/170154.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
业绩坠崖,股价狂飙,DeepSeek是用友网络的“华佗”
上一篇 2026年8月28日 23:09:08
intel第16代新CPU跑分曝光,12、13、14代全线涨价
下一篇 2025年11月25日 22:13:12

相关推荐

发表回复

登录后才能评论
关注微信