使用lombok解决默认值问题

使用lombok解决默认值问题

背景

有的时候我们向客户端吐json数据的时候,可能因为使用了model结构或者包装类,如果没有值是默认返回null,而不同的客户端,比如ios可能在处理null值时报异常,所以需要后端在所有可能吐到客户端的json的model里面的属性上进行默认值赋值。

可以采用lombok解决这种问题。

POM

<dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.16.16</version>
</dependency>

测试

新建两个Model,person引用son。

son属性提供了默认值。

@Data
public class MySon {
    @Builder.Default
    private Integer id = 100;
    @Builder.Default
    private String name = "default";
}

person没有默认值。

@Data
public class MyPerson {
    private Integer id;
    private Long longId;
    private String desc;
    private MySon mySon;
}

测试:

MyPerson p = new MyPerson();
MySon s = new MySon();
p.setMySon(s);
System.out.println("p = [" + p + "]");

p = [MyPerson(id=null, longId=null, desc=null, mySon=MySon(id=100, name=default))]

可以看到son的默认值已经有了。

转载于:https://my.oschina.net/u/1000241/blog/3047881

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100936.html原文链接:https://javaforall.net

赞 (1)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • charles导致mac无法上网_mac可以ping通 但是浏览器上不了网

    charles导致mac无法上网_mac可以ping通 但是浏览器上不了网前言charles关闭后,发现网页突然打开了,那大概率是设置了代理,但明明已经关闭了charles,这是由于mac网络偏好设置中,使用的是手动代理,将其改为自动即可解决方法1打开网络偏好设置,

    2022年7月31日
  • workbench mesh搅拌釜网格划分

    workbench mesh搅拌釜网格划分首先在scdm中创建几何模型导入workbenchmesh中进行划分,导出为msh格式网格即可单击mesh,调整参数,比如修改physics为CFD等 选中geometry第二个body,右击选择suppressbody,此时只剩下一个body 右击mesh,选择insertmethod,选择几何,选择默认参数 单击generatemesh,生成网格 单击第…

    2022年5月25日
  • java字符串分割split你用对了吗「建议收藏」

    java字符串分割split你用对了吗「建议收藏」一、split介绍split()方法根据匹配给定的正则表达式来拆分字符串。注意:.、$、|和*等转义字符,必须得加\\。注意:多个分隔符,可以用|作为连字符。语法publicString[]split(Stringregex,intlimit)参数 regex–正则表达式分隔符。 limit–分割的份数。 返回值字符串数组。二、测试一如下示例,猜猜答案吧privatestaticvoid…

    2022年9月28日
  • mysql 修改字段类型并设置默认值[通俗易懂]

    mysql 修改字段类型并设置默认值[通俗易懂]/*修改表obj_Device,把字段类型channelNum改为TINYINT(3),默认值为8*/altertable obj_DevicechangecolumnchannelNumchannelNumTINYINT(3)NOTNULLDEFAULT8;

    2022年5月1日
  • 多线程案例:生产者和消费者

    多线程案例:生产者和消费者

    2021年5月6日
  • css怎么设置注释快捷键,html中注释的快捷键是

    css怎么设置注释快捷键,html中注释的快捷键是html中注释的快捷键是command或ctrl+/超文本标记语言(HyperTextMarkupLanguage),标准通用标记语言下的一个应用。HTML不是一种编程语言,而是一种标记语言(markuplanguage),是网页制作所必备的。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。超文本标记语言(或超文本标签语言)的结构包括“头”部分、和“主体”部分,其中“…

    2022年6月9日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号