lombok注解

Lombok 是一个 Java 库,用于减少样板代码,特别是在创建 POJO(Plain Old Java Object)类时。它通过注解的方式自动生成 getter、setter、构造函数等常用代码,简化了 Java 开发。以下是一些常用的 Lombok 注解及其功能:

1. @Data

  • 功能: 自动生成 getters 和 setters、toString()equals()hashCode() 方法。
  • 适用场景: 用于简单的 Java 对象,包含字段和基本操作。
import lombok.Data;

@Data

public class User {

    private Integer id;

    private String username;

    private String password;

}

2. @NoArgsConstructor

  • 功能: 自动生成一个无参构造函数。
  • 适用场景: 当需要默认构造函数(例如,某些框架可能要求)时使用。
import lombok.NoArgsConstructor;

@NoArgsConstructor

public class User {

    private Integer id;

    private String username;

    private String password;

}

3. @AllArgsConstructor

  • 功能: 自动生成一个包含所有字段的构造函数。
  • 适用场景: 当需要用所有字段初始化对象时使用。
import lombok.AllArgsConstructor;

@AllArgsConstructor

public class User {

    private Integer id;

    private String username;

    private String password;

}

4. @Builder

  • 功能: 支持构建者模式,生成一个构建者类,可以通过流式调用设置属性。
  • 适用场景: 适用于复杂对象的构建,尤其是有很多可选参数的情况。
import lombok.Builder;

@Builder

public class User {

    private Integer id;

    private String username;

    private String password;

}

// 使用示例

User user = User.builder()

                .id(1)

                .username("john")

                .password("secret")

                .build();

5. @Value

  • 功能: 用于定义不可变类,自动生成所有字段的 getters,且类默认为 final,字段默认为 private final。
  • 适用场景: 用于值对象,确保对象创建后无法修改。
import lombok.Value;

@Value

public class User {

    private Integer id;

    private String username;

    private String password;

}

6. @Getter@Setter

  • 功能: 分别用于生成 getters 和 setters,适合对单个字段生成。
  • 适用场景: 当你只需要特定字段的访问方法时使用。
import lombok.Getter;

import lombok.Setter;

public class User {

    @Getter @Setter

    private Integer id;

    @Getter

    private String username;

    @Setter

    private String password;

}

7. @SneakyThrows

  • 功能: 在方法上使用时,自动处理未检查异常,无需在方法签名中声明。
  • 适用场景: 当你想要避免检查异常的处理,但仍想要抛出异常时使用。
import lombok.SneakyThrows;

public class UserService {

    @SneakyThrows

    public void riskyMethod() {

        // 可能抛出异常的代码

    }

}

小结

Lombok 提供了许多有用的注解,可以显著减少 Java 代码中的样板代码,提高开发效率。使用 Lombok 时,只需在类上添加所需的注解,Lombok 会自动生成相应的代码。


项目分区导航@PathVariable ⬅️ | 02-lombok注解 | ➡️ MyBatis-MyBatis-plus