lombok
Posted ylcc-zyq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lombok相关的知识,希望对你有一定的参考价值。
一、@Data注解
@Data集合了@ToString、@EqualsAndHashCode、@Getter/@Setter、@RequiredArgsConstructor。
就是自动生成get和set方法,toStirng方法,hash和equal方法等
二、@Getter和@Setter
注解在属性上为属性生成get和set方法
三、@NotNull
该注解用在属性或构造器上,Lombok会生成一个非空的声明,可用于校验参数,能帮助避免空指针。 示例如下:
import lombok.NonNull;
public class NonNullExample extends Something {
private String name;
public NonNullExample(@NonNull Person person) {
super("Hello");
this.name = person.getName();
}
}
四、@Cleanup
该注解能帮助我们自动调用close()方法,很大的简化了代码。将IO流自动用try-finally包围,并在最后自动关闭
五、@EqualsAndHashCode
默认情况下,会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成equals和hasCode,也能通过exclude注解来排除一些属性。
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(exclude={"id", "shape"})
public class EqualsAndHashCodeExample {
private transient int transientVar = 10;
private String name;
private double score;
private Shape shape = new Square(5, 10);
private String[] tags;
private int id;
public String getName() {
return this.name;
}
@EqualsAndHashCode(callSuper=true)
public static class Square extends Shape {
private final int width, height;
public Square(int width, int height) {
this.width = width;
this.height = height;
}
}
}
六、@ToString
类使用@ToString注解,Lombok会生成一个toString()方法,默认情况下,会输出类名、所有属性(会按照属性定义顺序),用逗号来分割。
通过exclude属性可以排除属性
通过将includeFieldNames参数设为true,就能将属性的变量名和值对应打出,否则只打印值。
七、@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
无参构造器、部分参数构造器、全参构造器。Lombok没法实现多种参数构造器的重载。
以上是关于lombok的主要内容,如果未能解决你的问题,请参考以下文章