在我们写JavaBean时常常需要写Getter&Setter方法,以及类的构造器,equals方法等等,引入了Lombok以后,可以通过注解的方式声明以上方法,这样就不用手动去写代码了。
Lombok官网:https://projectlombok.org/
在IDEA中引入Lombok
在IDEA中使用Lombok不仅需要安装插件还需要导入jar包依赖。
1.从IDEA插件市场下载Lombok在IDEA中选择菜单栏的File-->setting-->plugins进入插件市场。
搜索Lombok,并下载安装。
2.在Maven中引入Lombok依赖打开pom.xml添加依赖。
maven仓库地址:https://www.pangugle.com/lib/maven/view/org.projectlombok/lombok/1.18.22.html
org.projectlombok lombok 1.18.22
完整的pom.xml配置如下:
使用注解简化代码
定义一个User类:
public class User {
private String name;
private String password;
}
1.@Data
为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
简而言之就是除了构造方法能生成的都生成了~
import lombok.Data;
@Data
public class User {
private String name;
private String password;
}
测试,看看能不能直接调用方法:
2.单独生成某一个方法
@Getter、@Setter:生成所有属性的Getter与Setter。
@NoArgsConstructor:生成无参构造器。
@AllArgsConstructor:生成全参构造器。
@RequiredArgsConstructor:生成包含final和@NonNull注解的成员变量的构造器。
@ToString:覆盖默认的toString(),可以使用of限定某些属性,用exclude排除。
@AllArgsConstructor
@ToString(of = {"name"}, exclude = {"password"})
public class User {
private String name;
private String password;
}
测试:
@Test
public void test() {
User user = new User("haha", "123");
System.out.println(user);
}
@EqualsAndHashCode:作用于类,覆盖默认的equals和hashCode。
3.额外的一些注解
@Builder:作用于类上,将类转变为建造者模式。
@Data
@Builder
public class User {
private String name;
private String password;
}
@Test
public void test() {
User user = User.builder().build();
}
@Cleanup:用在变量前面,可以保证此变量代表的资源会被自动关闭,默认是调用资源的close()方法。
@Cleanup
InputStream in = new FileInputStream("...");
@Cleanup
OutputStream out = new FileOutputStream("...");



