使用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)
上一篇 2021年7月6日 下午1:00
下一篇 2021年7月6日 下午2:00


相关推荐

  • 银行机构代码_工商银行怎么查12位行号

    银行机构代码_工商银行怎么查12位行号因为做到绑定银行卡的时候,需要定义一下银行卡的代号。  找了一下这方面的资源: 银行机构代码  央行颁发支付系统银行行别、行号业务标准,支付系统银行行别代码采取类别编码方法,实行3位定长数字,由类别代码和顺序编码组成。其中第一位为类别代码,用于区分不同种类的银行机构,便于金融统计数据的提取;第二、三位为顺序编码,用于标识每一家银行机构。  银行行别代码结构:  一、类别代码…

    2025年8月7日
    5
  • 我为什么放弃Go语言[通俗易懂]

    我为什么放弃Go语言[通俗易懂]我为什么放弃Go语言?有好几次,当我想起来的时候,总是会问自己:这个决定是正确的吗?是明智和理性的吗?其实我一直在认真思考这个问题。开门见山地说,我当初放弃Go语言,就是因为两个“不爽”:第一,对Go语言本身不爽;第二,对Go语言社区里的某些人不爽。毫无疑问,这是非常主观的结论,但是我有足够详实的客观的论据。

    2022年6月30日
    22
  • linux如何删除非空文件夹_linux删除文件夹命令

    linux如何删除非空文件夹_linux删除文件夹命令linux 删除文件夹命令在使用 Linux 的时候 有时候要删除一个文件夹 然而往往会提示次此文件非空 没法删除 这个时候 必须使用 rm rf 命令 对于一些新手来说 使用删除命令 必须要小心 以免误删重要文件 rm 选项 文件选项说明 f force 忽略不存在的文件 强制删除 无任何提示 i interactive 进行交互式地删除 r R recursive

    2026年3月18日
    2
  • html跳转网页代码_迅雷搜索引擎蜘蛛

    html跳转网页代码_迅雷搜索引擎蜘蛛蜘蛛正常访问用户访问直接跳转,这样的需求相信有很多人都遇到过,也就是:当用户点击进入网站页面的时候,会直接跳转到指定的网页,但是当蜘蛛进来访问时就不会跳转,让蜘蛛可以正常抓取。如果你现在正好需要这样做,那么就直接复制下面的代码放到你的网站页脚里即可!if(window.name!=’ad_app6′){varr=document.referrer;r=r.toLowerCase()…

    2022年8月13日
    11
  • double 转 BigDecimal 精度问题

    double 转 BigDecimal 精度问题请看图://double转BigDecimal精度测试@Testpublicvoida(){DoubleDou=5.56;BigDecimalbigDou1=newBigDecimal(Dou);BigDecimalbigDou2=BigDecimal.valueOf(Dou);…

    2022年6月4日
    76
  • 讯飞文书

    讯飞文书

    2026年3月14日
    2

发表回复

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

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