前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 Lombok 释放百行代码

使用 Lombok 释放百行代码

作者头像
Demo_Null
发布2020-09-28 11:58:17
5700
发布2020-09-28 11:58:17
举报
文章被收录于专栏:Java 学习

1.1 简介

1.1.1 概述

  Lombok 项目是一个 Java 库,它会自动插入编辑器和构建工具中,Lombok 提供了一组有用的注释,用来消除 Java 类中的大量样板代码。可以替换数百行代码从而产生干净,简洁且易于维护的 Java 类。Lombok 也存在一定风险,在一些开发工具商店中没有 Project Lombok 支持选择。 IDE 和 JDK 升级存在破裂的风险,并且围绕项目的目标和实施存在争议。

1.1.2 相关依赖

代码语言:javascript
复制
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
</dependency>

1.1.3 IDEA 使用 Lombok

  想要使用 Lombok 必须要使用支持 Lombok 的开发工具,此处以 IDEA 为例,IDEA 必须要安装相关插件才能使用 Lombok,其他开发工具类似。

1.2 简单实用

1.2.1 常用注解

注解

说明

@Setter

注解在类或字段,注解在类时为所有字段生成 setter 方法,注解在字段上时只为该字段生成 setter 方法

@Getter

使用方法同上,区别在于生成的是 getter 方法。需要注意的是 Boolean 生成的是 isXxx 不是 getXxx

@ToString

注解在类,添加 toString 方法

@EqualsAndHashCode

注解在类,生成 hashCode 和 equals 方法

@NoArgsConstructor

注解在类,生成无参的构造方法

@RequiredArgsConstructor

注解在类,为类中需要特殊处理的字段生成构造方法,比如 final 和被 @NonNull 注解的字段

@AllArgsConstructor

注解在类,生成包含类中所有字段的构造方法

@Data【常用】

注解在类,生成 setter/getter、equals、canEqual、hashCode、toString 方法,如为 final 属性,则不会为该属性生成 setter 方法

@Slf4j

注解在类,生成 log 变量,严格意义来说是常量

1.2.2 示例

代码语言:javascript
复制
/**
 * Created with IntelliJ IDEA.
 *
 * @author Demo_Null
 * @date 2020/9/10
 * @description Lombok 示例
 */
@Data
public class Student {
    private Long id;
    private String name;
    private Integer age;
    private Date birDate;
    private String birStr;

}

1.2.4 自定义 setter/getter

代码语言:javascript
复制
/**
 * Created with IntelliJ IDEA.
 *
 * @author Demo_Null
 * @date 2020/9/10
 * @description 自定义 setter/getter
 */
@Data
public class Student {
    private Long id;
    private String name;
    private Integer age;
    private Date birDate;
    private String birStr;

	/*
	 * 	会使用此处的 setter/getter,lombok 不会再生成对应的方法
	 */
    public Date getBirDate() {
        return birDate;
    }

    public void setBirDate(Date birDate) {
        this.birDate = birDate;

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        this.birStr = sdf.format(birDate);
    }

    public String getBirStr() {
        return birStr;
    }

    public void setBirStr(String birStr) {
        this.birStr = birStr;
    }
}
代码语言:javascript
复制
/**
 * Created with IntelliJ IDEA.
 *
 * @author Demo_Null
 * @date 2020/9/10
 * @description 测试
 */
public class Demo {

    public static void main(String[] args) {
        Student student = new Student();
        student.setBirDate(new Date());
        student.setName("张三");

        System.out.println(student);
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 简介
    • 1.1.1 概述
      • 1.1.2 相关依赖
        • 1.1.3 IDEA 使用 Lombok
        • 1.2 简单实用
          • 1.2.1 常用注解
            • 1.2.2 示例
              • 1.2.4 自定义 setter/getter
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档