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
💬 评论