Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.
Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
Lombok简单理解就是一个Java类库,通过注解的形式帮助开发减少一些结构化代码的开发工作,提高开发效率,比如通过@Data注解,class在编译的时候会自动生成get
,set
,equals
,hash
,toString
等方法,避免写大量的代码,减少了代码量,也使代码看起来更加简洁。尤其是一些对象属性需要改动的时候,每次改动都需要重新生成get
,set
,equals
,hash
,toString
等方法,而使用注解则可以避免此问题。
1、如果要使用lombok,首先开发工具IntelliJ IDEA
或者Eclipse
需要先安装插件lombok
支持,其次需要引入依赖。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</dependency>
2、使用注解,添加需要的结构
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Student {
private Integer sno;
private String sname;
private String ssex;
private Integer sage;
}
@Data
:该注解定义在JavaBean上,给JavaBean产生getter,setter,无参构造器,tostring()
,hashcode()
,equals()
@NoArgsConstructor
:产生无参构造器
@Getter
:产生getter
@Setter
:产生setter
@ToString
:产生toString()
@RequiredArgsConstructor
:可以用来定义有参构造器
@NonNull
:该注解用在属性或形参上,Lombok会生成一个非空的声明,可用于校验参数,能帮助避免空指针。
public static String getName(@NonNull User user) {
return user.getName();
}
@AllArgsConstructor
:产生全属性的有参构造
@Cleanup
:这个注解用在变量前面,可以保证此变量代表的资源会被自动关闭,默认是调用资源的close()
方法,如果该资源有其它关闭方法,可使用@Cleanup("methodName")
来指定要调用的方法。
public static void main(String[] args) throws IOException {
@Cleanup
InputStream in = new FileInputStream("c:\\test.jpg");
}
@EqualsAndHashCode
:生成hashCode
和equals
方法。