再使用Java进行面向对象编程时,我们会编写大量的get,set,toString等方法,现在就向大家介绍一个开发利器Lombok,只需要在实体类编写注解,就会自动的帮你生产各类方法。
1.在编译器下载Lombok插件。
下载后需要重启编译器方可生效。
2.其次在POM文件中添加Lombok的依赖文件
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
3.等待maven导入jar包后,即可使用Lombok插件了。
@Data
public class Person {
private Integer age;
private String name;
private Integer sex;
}
使用时只需要在实体类头部加上注解即可,自动实现了getter,setter,tostring等,简单方便。
4.当然了Lombok不止只有这一点功能,他还有很多的注解。如果觉得@Data太过于残暴直接,也可以使用更加精细的注解来实现想要的功能。
@Getter/@Setter注解,此注解在属性上,可以为相应的属性自动生成Getter/Setter方法。
@NonNull 该注解用字啊 属性或构造器上,Lombok会生成一个非空的申明没可用于校验参数,能帮助避免空指针。
@Cleanup 该注解能帮助我们自动调用close()方法,很大的简化了代码。
@EqualsAndHashCode 默认情况下,会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成equals和hasCode,也能通过exclude注解来排除一些属性。
@ToString 类使用@ToString注解,Lombok会生成一个toString()方法,默认情况下,会输出类名、所有属性(会按照属性定义顺序),用逗号来分割。
@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor 无参构造器、部分参数构造器、全参构造器。Lombok没法实现多种参数构造器的重载。
Lombok的优缺点
优点:
a.能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法
b.提高了一定的开发效率 让代码变得简洁,不用过多的去关注相应的方法
c.属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等
缺点:
a.不支持多种参数构造器的重载
b.虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性和完整性,降低了阅读源代码的舒适度