• 2023.11.9 IDEA 配置 Lombok


    目录

    什么是 Lombok

    如何使用 Lombok 

    Lombok 的 @Data 注解

    Lombok 注释说明


    什么是 Lombok

    • Lombok 是一个 Java 库,能自动插入编译器并构建工具,简化 Java 开发
    • 它通过注解实现这一目的,可用来帮助开发人员消除 Java 的冗长代码,尤其是对于简单的 Java 对象
    • Lombok 可以自动生成 getter、setter、equals、hashCode、toString等方法,还可以自动生成构造函数等方法,从而减少了代码量

    如何使用 Lombok 

    1. 在 maven 项目的 pom.xml 文件中添加依赖

    1. <dependency>
    2. <groupId>org.projectlombokgroupId>
    3. <artifactId>lombokartifactId>
    4. <version>1.18.24version>
    5. <scope>providedscope>
    6. dependency>

    2. 在实体类上使用 Lombok 提供的注解

    • 我们创建一个 User 类
    • 并在该类上添加 Lombok 提供的 @Getter、@Setter、@ToString 注解
    1. import lombok.Getter;
    2. import lombok.Setter;
    3. import lombok.ToString;
    4. @Getter
    5. @Setter
    6. @ToString
    7. public class User {
    8. public int id;
    9. public String name;
    10. }

    3. IDEA 安装 Lombok 插件

    • 如果不安装 Lombok 插件,IDEA 将无上图提示

    4. 创建一个启动类

    1. public class App {
    2. public static void main(String[] args) {
    3. User user = new User();
    4. user.setId(1);
    5. user.setName("小林");
    6. System.out.println(user.toString());
    7. }
    8. }

    运行结果:

    Lombok 的 @Data 注解

    • Lombok的@Data 注解是一个组合注解
    • 它可以应用在类上,用于生成类的常用方法,如 equals、hashCode、toString、getter、setter 等

    实例

    • 我们可以修改上述实例代码,将类上的 @Getter、@Setter、@ToString 注解,改为 @Data 注解
    1. import lombok.Data;
    2. @Data
    3. public class User {
    4. public int id;
    5. public String name;
    6. }
    • 此时我们再次运行启动类,其最终的运行结果相同

    Lombok 注释说明

    基本注释

    注释作用
    @Getter自动添加 getter 方法
    @Setter自动添加 setter 方法
    @ToString自动添加 toString 方法
    @EqualsAndHashCode自动添加 equals 和 hashCode 方法
    @NoArgsConstructor自动添加无参构造方法
    @AllArgsConstructor自动添加全属性构造方法,顺序按照属性的定义顺序
    @NonNull属性不能为 null
    @RequiredArgsConstructor自动添加必须属性的构造方法,final + @NonNull 的属性为必须

    组合注解

    注解作用
    @Data@Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor + @NoArgsConstructor

    日志注解

    注解作用
    @Slf4j添加一个名为 log 的日志,使用 slf4j
  • 相关阅读:
    基于springboot+vue的智慧幼儿园管理系统(前后端分离)
    Stable Diffusion XL搭建
    在WPF应用程序集中添加新文件时,Page和Window有什么区别
    Python Gui之tkinter(下)
    Mysql 45讲学习笔记(七)行锁
    C# TcpClient
    (十二)Jmeter测试dubbo接口
    一文解读功率放大器(功率放大器如何选型)
    【JAVA学习笔记】63 -坦克大战1.3-敌方发射子弹,击中坦克消失并爆炸,敌人坦克随机移动,规定范围限制移动
    LeetCode 第 367 场周赛
  • 原文地址:https://blog.csdn.net/weixin_63888301/article/details/134320150