首页 > 基础资料 博客日记
lombok~避免Boolean属性使用默认的方法
2024-09-27 09:30:04基础资料围观108次
本篇文章分享lombok~避免Boolean属性使用默认的方法,对你有帮助的话记得收藏一下,看Java资料网收获更多编程知识
前言
前端与后端在进行交互时,前端传的对象中,有的属性是int,boolean这些类型,它们是有默认值的,当前端不转它们时,后端也会接收到默认值,如int为0,boolean为false,这就给后端代码带来不确定性;比如要有个put更新用户的方法,有个用户对象如下
@Data
public class UserAccountResponse implements Serializable {
private String id;
private String name;
private boolean isDefault;
}
当前端只put更新name时,如果不传isDefault,后端接收到的是isDefault=0,这是不对的,会出现数据被覆盖的问题;基于这个问题我们需要将boolean改成封装类型Boolean,当前端不传时,它是为null的;而在lombok中,boolean和Boolean类型生成的 getter和setter方法名是不同的,这导致了返回前端的属性名不同。
lombok中boolean和Boolean
对于上面的例子,在isDefault被返回前端时,它的名称分别是
- boolean 返回到前端为 default
- Boolean 返回到前端为 isDefault
为Boolean类型属性进行适配
使用 @Setter(AccessLevel.NONE)和@Getter(AccessLevel.NONE) 并手动实现 getter 和 setter
@Data
public class UserAccountResponse implements Serializable {
private String id;
private String name;
@Setter(AccessLevel.NONE)
@Getter(AccessLevel.NONE)
private boolean isDefault;
public Boolean getDefault() {
return isDefault; // 自定义 getter 方法
}
public void setDefault(Boolean isDefault) {
this.isDefault = isDefault;
}
}
这样再返回前端时,就是只有一个default字段了,不是与之前boolean产生冲突,当然,如果之前你使用的一直是Boolean就不会有这个问题,本文章只使用于类型从boolean修改为Boolean的情况
{
"code": "200",
"data": [
{
"id": "57345f65bb064a9a95327e35a5034905",
"default": true,
"name": "normal"
}
]
}
文章来源:https://www.cnblogs.com/lori/p/18434951
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
上一篇:排查maven 冲突及解决方式
下一篇:MySQL版本选择与安装