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)

目录
相关文章
|
6月前
|
Java 应用服务中间件 Maven
在IntelliJ IDEA中如何配置使用Maven以创建Tomcat环境
所以,别担心这些工具看起来有些吓人,实际上这些都是为了帮助你更好的完成工作的工具,就像超市里的各种烹饪工具一样,尽管它们看起来可能很复杂,但只要你学会用,它们会为你烹饪出一道道美妙的食物。这就是学习新技能的乐趣,让我们一起享受这个过程,攀登知识的高峰!
428 27
|
6月前
|
Java 应用服务中间件 Apache
在IntelliJ IDEA中使用Maven配置Tomcat环境
此配置方法具有较高的实用性,简单易懂。遵循以上步骤,您将能顺利在IntelliJ IDEA中使用Maven配置Tomcat环境,从而进行Web项目的开发和调试。
799 18
|
7月前
|
缓存 Java Spring
IDEA中配置HTML和Thymeleaf热部署的步骤
以上就是在IntelliJ IDEA中配置HTML和Thymeleaf热部署的步骤。这样的配置可以大大提高你的开发效率,让你更专注于代码的编写,而不是等待应用的重启。希望这个指南对你有所帮助!
500 21
|
9月前
|
Java Maven
Idea配置项目的热启动
Idea配置项目的热启动
948 5
Idea配置项目的热启动
|
11月前
|
Java Spring
【Spring配置】idea编码格式导致注解汉字无法保存
问题一:对于同一个项目,我们在使用idea的过程中,使用汉字注解完后,再打开该项目,汉字变成乱码问题二:本来a项目中,汉字注解调试好了,没有乱码了,但是创建出来的新的项目,写的注解又成乱码了。
|
10月前
|
前端开发 Java 开发工具
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
655 0
|
Oracle IDE Java
IDEA安装教程配置java环境(超详细)
IDEA安装教程配置java环境(超详细)
7518 1
|
Linux 网络安全 开发工具
IDEA如何配置git和github
【11月更文挑战第14天】本指南详细介绍了如何在 IntelliJ IDEA 中配置 Git 和 GitHub,包括检查和设置 Git 路径、测试配置,以及通过 SSH 或 HTTPS 方式配置 GitHub 仓库的具体步骤。完成配置后,用户可在 IDEA 中轻松进行版本控制操作。
1894 0
IDEA自定义配置注释模板,让你看起来更加专业!!!
IDEA自定义配置注释模板,让你看起来更加专业!!!
1482 0
|
数据可视化 关系型数据库 MySQL
【IDEA】配置mysql环境并创建mysql数据库
【IDEA】配置mysql环境并创建mysql数据库
2342 0
下一篇
oss云网关配置