首页 > 其他分享 >lombok~避免Boolean属性使用默认的方法

lombok~避免Boolean属性使用默认的方法

时间:2024-09-27 09:02:31浏览次数:8  
标签:前端 private boolean 默认 lombok isDefault Boolean

前言

前端与后端在进行交互时,前端传的对象中,有的属性是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"
        }
    ]
}

标签:前端,private,boolean,默认,lombok,isDefault,Boolean
From: https://www.cnblogs.com/lori/p/18434951

相关文章

  • springboot2 默认cglib的原因 spring5默认还是jdk代理
    https://www.163.com/dy/article/J8871AJ5055616YO.html假设,我们有一个UserServiceImpl和UserService,此时需要在UserContoller中使用UserService。在Spring中通常都习惯这样写代码:@AutowiredUserServiceuserService;在这种情况下,无论是使用JDK动态代理,还是CGLIB都不会......
  • 类和对象(2)(六个默认成员函数)
     个人主页:Jason_from_China-CSDN博客所属栏目:C++系统性学习_Jason_from_China的博客-CSDN博客所属栏目:C++知识点的补充_Jason_from_China的博客-CSDN博客类的默认成员函数概念概述默认成员函数就是用户没有显式实现,编译器会自动生成的成员函数称为默认成员函数。一个......
  • 要实现在Vue 2中点击按钮后在新浏览器标签页中预览PDF文件 ,pdf文件默认放大125% 禁止P
    要在Vue2中实现点击按钮后在新浏览器标签页中预览PDF文件,并设置PDF文件默认放大125%以及禁止PDF的工具栏下载功能,你可以使用window.open方法,并在其中设置合适的URL参数来控制PDF查看器的行为。以下是一个实现的示例:创建Vue组件:在Vue组件中,添加一个按钮用于触发PDF预览......
  • Jupyter Notebook 修改默认路径
    第一次安装好 JupyterNotebook打开的目录好乱,是乱七八的,要修改JupyterNotebook的默认路径,您可以按照以下步骤操作:在Windows上打开命令提示符:按 Win+R 打开运行对话框。输入 cmd 并按回车。生成配置文件(如果还没有配置文件): jupyternotebook--generat......
  • OSPF 默认路由的发布原则 | 类型详解
    默认路由默认路由是指目的地址和掩码都是0的路由。当设备无精确匹配的路由时,就可以通过默认路由进行报文转发。一般多用于网络边界路由器访问互联网所需要的一条路由。同时,企业内,在精确的内部路由基础上,边界路由器通告一条默认路由,使所有访问未知目的地的数据报文都送至......
  • pbootcms如何将默认的sqlite转换成mysql数据库
    将PbootCMS使用的SQLite数据库转换为MySQL数据库可以通过以下几个步骤实现:准备工作备份当前SQLite数据库:在开始转换前,确保你有一个完整的SQLite数据库备份,以防转换过程中出现任何问题。准备MySQL环境:确保你的服务器上已经安装并配置好了MySQL服务,并且创建了一个新的数据库供Pb......
  • DataGridView DataGridViewCheckBoxColumn 实现禁用效果,因为默认的不带禁用效果
    ///<summary>///DataGridViewDisableCheckBoxColumn///自定义disablecheckbox列实现禁用效果///</summary>publicclassDataGridViewDisableCheckBoxColumn:DataGridViewCheckBoxColumn{publicDataGridViewDisableCheckBoxColumn(){this.......
  • 为什么默认数据库登录失败
    当你在使用帝国CMS时遇到默认数据库登录失败的情况,这通常意味着存在一些配置错误或数据库本身的问题。以下是一些可能导致默认数据库登录失败的原因及相应的解决方案:可能的原因及解决方法数据库配置错误检查配置文件:确保数据库配置文件(通常是/e/config/config.php)中的数据库......
  • 帝国cms安装默认密码 帝国cms安装教程
    帝国CMS是一款广泛使用的网站内容管理系统,其安装过程通常包括以下几个步骤:安装教程:上传文件解压帝国CMS安装包。将upload文件夹中的所有文件上传至您的网站根目录。访问安装脚本在浏览器中访问http://您的域名/e/install来启动安装向导。确认环境检查服务器环......
  • 帝国默认后台用户名及认证码,帝国CMS忘记后台登陆用户名 密码 认证码 安全提问答案 数
    当你忘记了帝国CMS后台的登录信息,包括用户名、密码、认证码、安全提问答案或数据库的用户名及密码时,可以采取以下几种方法来解决问题:忘记用户名和密码默认信息帝国CMS在某些版本中提供了默认的后台登录信息,例如账号admin,密码admin888。不过,这并不适用于所有版本,尤其是如果你......