IDEA中Date类型getter和setter模版的配置

简介:

每种IDE都可以帮忙我们Java开发自动生成POJO中的getter和setter,这是因为它们都有各自的生成模版。

强悍的idea也不例外。
下面是idea生成的一个Pojo类:

    class T{
        private int a;
        private Object b;

        public int getA() {
            return a;
        }

        public void setA(int a) {
            this.a = a;
        }

        public Object getB() {
            return b;
        }

        public void setB(Object b) {
            this.b = b;
        }
    }

默认情况下,idea的getter都是直接获取属性,setter都是直接赋值。

一些人觉得这样满足不了自己的要求,比如给 String 类型的属性赋值是希望 trim() 一下。所以他们修改了模板,看起来是这样的:

    class T {
        private String a;

        public String getA() {
            return a;
        }
        public void setA(String a) {
            this.a = a == null ? null : a.trim();
        }
    }

我今天要说的是Date类型属性的模板

Date类型有什么特殊呢?
因为Date类不是线程安全的,如果直接设置或者获取,可能会引起意想不到的后果。

我们期望Date类型返回它的副本,所以想生成的POJO类是这样的:

    class T {
        private Date a;

        public Date getA() {
            if (a != null) return (Date) a.clone();
            return null;
        }
        public void setA(Date a) {
            this.a = a == null ? null : (Date) a.clone();
        }
    }

怎么配置呢?
假设你知道快捷键是 Alt+insert,然后选择 getter and setter,进去以后点后面的 ... :进去以后点左上角加号增加一个自己的模板,名字根据自己喜好。
getter模板配置如下:

#if($field.modifierStatic)
static ##
#end
$field.type ##
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))
#if ($field.boolean && $field.primitive)
    is##
#else
    get##
#end
${name}() {
#if($field.date)
    if ($field.name != null) return (Date)${field.name}.clone();
    return null;
#else
    return $field.name;
#end 
}

setter模板配置如下:

#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
  #if ($field.date)
      $field.name = ${paramName} == null ? null : (Date)${paramName}.clone();
  #else
      $field.name = $paramName;
  #end
}

重点就是其中的 #if ($field.date)

目录
相关文章
|
5天前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
4天前
|
Java 应用服务中间件 Maven
Mac使用Idea配置传统SSM项目(非maven项目)
Mac使用Idea配置传统SSM项目(非maven项目)
13 1
|
4天前
|
Java Maven
成功解决IDEA中建立新项目Maven会默认选择配置(图解详细说明)
这篇文章提供了在IntelliJ IDEA中设置新项目的Maven配置的详细步骤,包括如何通过菜单路径进入设置,选择Maven配置,以及展示设置后的效果,还提供了Maven的安装教程和解决导入项目时jar包下载问题的方案。
成功解决IDEA中建立新项目Maven会默认选择配置(图解详细说明)
|
26天前
|
Java Maven 开发者
入职必会-开发环境搭建14-IDEA配置Maven
在 IDEA 中配置 Maven 可以帮助开发者更方便地管理项目依赖、构建项目和部署应用程序。要在 IDEA 中配置 Maven,可以按照以下步骤进行。
入职必会-开发环境搭建14-IDEA配置Maven
|
6天前
|
安全 开发工具 git
coding上创建项目、创建代码仓库、将IDEA中的代码提交到coding上的代码仓库、Git的下载、IDEA上配置git
这篇文章是关于如何在IDEA中配置Git、在Coding.net上创建项目和代码仓库,并将IDEA中的代码提交到远程代码仓库的详细教程,涵盖了Git安装、IDEA配置、项目创建、代码提交等步骤。
coding上创建项目、创建代码仓库、将IDEA中的代码提交到coding上的代码仓库、Git的下载、IDEA上配置git
|
14天前
|
IDE Java 测试技术
Java零基础(4) - JDK、IntelliJ IDEA的安装和环境变量配置
【8月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
43 0
Java零基础(4) - JDK、IntelliJ IDEA的安装和环境变量配置
|
23天前
|
微服务
idea 配置 service 服务,多模块同时启动
idea 配置 service 服务,多模块同时启动
67 7
|
23天前
|
SQL Java 数据库连接
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
37 3
|
4天前
|
应用服务中间件
2022年最新最详细在IDEA中配置Tomcat(含有详细图解过程)、建立使用IEDA建立一个Web项目的案例
这篇文章提供了在IntelliJ IDEA中配置Tomcat服务器的详细步骤,包括添加Tomcat Server、选择安装路径、添加项目Artifact,以及创建和展示Web项目的流程。
|
26天前
|
应用服务中间件
入职必会-开发环境搭建23-IDEA配置Tomcat
IDEA配置Tomcat分为两部分: 1. IDEA集成本地Tomcat 2. IDEA中使用Tomcat部署Web项目 在配置IntelliJ IDEA中的Tomcat时,首先需要打开IDEA,选择菜单中的Run -> Edit Configurations,在左侧菜单中找到+并点击,然后选择Tomcat Server下的Local(注意不要选择错了,下方还有个TomEE Server,不是选这个)。接下来,输入一个自定义的名字作为Tomcat的配置名称,点击Configure...配置Tomcat的安装路径。这样IDEA就配置好了Tomcat。