Lombok是什么?
Lombok是一个Java库,它通过注解自动生成代码,大大减少了Java开发中的样板代码。
Lombok是什么?
Lombok = Lombok Project,是一个Java库,通过注解在编译时自动生成getter、setter、构造函数等代码。
主要功能:
1. 自动生成getter/setter
// 传统写法
public class User {private String name;private Integer age;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}
}// 使用Lombok
@Data
public class User {private String name;private Integer age;
}
2. 自动生成构造函数
// 传统写法
public class User {private String name;private Integer age;public User() {} // 无参构造函数public User(String name, Integer age) { // 全参构造函数this.name = name;this.age = age;}
}// 使用Lombok
@NoArgsConstructor // 无参构造函数
@AllArgsConstructor // 全参构造函数
public class User {private String name;private Integer age;
}
常用注解:
1. @Data
@Data // 包含 @Getter, @Setter, @ToString, @EqualsAndHashCode
public class User {private String name;private Integer age;
}
2. @Getter/@Setter
@Getter
@Setter
public class User {private String name;private Integer age;
}
3. @NoArgsConstructor/@AllArgsConstructor
@NoArgsConstructor // 无参构造函数
@AllArgsConstructor // 全参构造函数
public class User {private String name;private Integer age;
}
4. @ToString
@ToString
public class User {private String name;private Integer age;
}
// 自动生成toString()方法
5. @EqualsAndHashCode
@EqualsAndHashCode
public class User {private String name;private Integer age;
}
// 自动生成equals()和hashCode()方法
优势:
- 减少样板代码:不需要手写getter/setter
- 提高开发效率:注解自动生成代码
- 减少错误:自动生成的代码不容易出错
- 代码更简洁:类定义更清晰
注意事项:
- IDE支持:需要安装Lombok插件
- 编译时生成:生成的代码在编译时存在,源码中看不到
- 调试:调试时可能看不到生成的代码
- 团队协作:所有开发者都需要了解Lombok
同时要记得添加依赖和安装Lombok插件
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional>
</dependency>
