首页 > 其他分享 >将IDEA的setter代码模板改成链式setter

将IDEA的setter代码模板改成链式setter

时间:2025-01-18 19:10:25浏览次数:1  
标签:set end 链式 IDEA field userInfo paramName setter

setter传统模式

UserInfo userInfo = new UserInfo();
userInfo.setUserId("zhangsan");
userInfo.setUserName("张三");
userInfo.setAge(18);

每一行都需要分号来隔断,影响编码效率。

链式setter

UserInfo userInfo = new UserInfo().setUserId("zhangsan").setUserName("张三").setAge(18);

做法是set方法的返回对象不再是void,而是this,指代当前对象。
好处很明显,一行可以写完对象的构建。不停地点,结合IDEA的自动提示,就能自动带出对应的setter方法。

问题

默认情况下,IDEA的setter模板的返回对象为void,导致生成的settter代码无法进行链式set。

UserInfo userInfo = new UserInfo().setUserId("zhangsan").setUserName("张三").setAge(18);

解决办法

#set($paramName = $helper.getParamName($field, $project))
#if($field.modifierStatic)
static ##
#end
void set$StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))($field.type $paramName) {
  #if ($field.name == $paramName)
    #if (!$field.modifierStatic)
      this.##
    #else
      $classname.##
    #end
  #end
  $field.name = $paramName;
}

将以上代码略做修改:

#set($paramName = $helper.getParamName($field, $project))
#if($field.modifierStatic)
static ##
#end
$classname set$StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))($field.type $paramName) {
  #if ($field.name == $paramName)
    #if (!$field.modifierStatic)
      this.##
    #else
      $classname.##
    #end
  #end
  $field.name = $paramName;
  return this;
}

前后的具体变化点:

  • 第5行的void改为了:$classname
  • 倒数第二行增加了:return this;

标签:set,end,链式,IDEA,field,userInfo,paramName,setter
From: https://www.cnblogs.com/jiayuan2006/p/18678728

相关文章

  • 长期更新IDEA安装永久破解教程
    IntelliJIDEA版本亲测Version2024.3.2✔Version2024.3.1✔Version2024.2.*✔介绍JetBrains是一家专注于创建智能开发工具的前沿软件公司,旗下常用的软件有IntelliJIDEA、PhpStorm、PyCharm、Rider、RubyMine、RustRover、WebStorm、Goland、CLion等。IntelliJID......
  • IntelliJ IDEA增加右键菜单
    提示:这是一篇主要讲述如何给IntelliJIDEA增加右键菜单的文章,文章目录问题描述解决方案1.打开注册表编辑器2.找到路径,HKEY_CLASSES_ROOT\Directory\shell3.增加右键菜单的IntelliJIDEA显示路径4.增加右键菜单IntelliJIDEA的执行路径5.测试问题描述安装完Intel......
  • IDEA如何将没用到的包移除掉?
    前言大家好,我是小徐啊。我们在使用IDEA开发的时候,都是需要导入各种各样的依赖包的,这些依赖包是我们开发Java应用的时候必不可少的。不过,有时候,当我们不需要某些依赖的时候,可能我们删除了相应的代码,但是对于上方的引入的包没有删除,虽然这不会对代码运行产生影响,但不太美观,该如何去......
  • IDEA 内置的 Spring Initializr 创建 Spring Boot 新项目时无法使用JDK8?
    使用新版IDEA时发现:可以看到IDEA在创建Springboot项目时无法使用jdk8了。是因为SpringBoot官方不再支持SpringBoot的2.x版本了,之后全力维护3.x;而SpringBoot3.x对JDK版本的最低要求是17!  不使用官方提供的SpringInitializr来初始化项目,可以使用阿里......
  • IntelliJ IDEA 设置编码为utf-8编码
    IntelliJIDEA设置编码为utf-8编码IntelliJIDEA统一设置编码为utf-8编码问题一:File->Settings->Editor->FileEncodings​​问题二:File->OtherSettings->DefaultSettings->Editor->FileEncodings问题三:将项目中的.idea文件夹中的encodings.xml文件中的编码格式改......
  • 从 AI Coding 演进路径看通义灵码 AI 程序员的发布,让更多 idea 变成产品
    点击链接,回顾发布会:https://www.bilibili.com/video/BV1v6c9euESz/根据StackOverflow的一个开发者调查报告:2024年有62% 的开发者正在使用AI编码工具;根据IDC的一个调查报告,对于已经探索生成式AI的中国企业,有31% 的研发人员已经在使用代码生成产品。AI编码工具的使用人......
  • 从 AI Coding 演进路径看通义灵码 AI 程序员的发布,让更多 idea 变成产品
    点击链接,回顾发布会:https://www.bilibili.com/video/BV1v6c9euESz/根据StackOverflow的一个开发者调查报告:2024年有62% 的开发者正在使用AI编码工具;根据IDC的一个调查报告,对于已经探索生成式AI的中国企业,有31% 的研发人员已经在使用代码生成产品。AI编码工具的使用人......
  • idea创建项目的搭建方式
    1.普通Java项目2.普通javaweb项目3.maven的javaweb项目4.maven的Java项目5.springboot项目(5种方式)......
  • IDEA如何快速定位到某一行某一列?
    前言大家好,我是小徐啊。我们在开发Java应用的时候,一般是用IDEA来开发的,毕竟这是一款功能强大的开发工具。我们可以使用IDEA做很多事情,今天小徐就来介绍下在使用IDEA开发的时候,如何快速定位到某个文件的某一行某一列。如何快速定位到某一行某一列首先,我们需要打开要查找的文件,如......
  • 链式前向星
    我认为我需要链式前向星和一个博客园--shuxin5``很简单就是用数组模拟把相同起点的边挂在一起,换句话说就是链表的所有数据是从i出发的所有边的集合,于是需要用next来标记下一个边的编号一个节点用结构体存储----structedge内部含有一个head[i]数组:用来存储此节点的第一条边我......