整理自网络及官网
@Getter
和 @Setter
生成get、set方法
@NonNull
空值检测 如在字段上使用则生成的方法也进行空值检测 检测到空会抛出空指针异常
生成toString方法 可使用参数排除部分字段 @ToString(exclude="someField")
生成equals和hashcode方法
相当于同时使用了@Getter和@Setter、@ToString、@EqualsAndHashCode
保证资源被释放
如:
@Cleanup ByteArrayOutputStream b = new ByteArrayOutputStream();
则相当于
ByteArrayOutputStream b = new ByteArrayOutputStream();
try {
//...
} finally {
b.close();
}
加锁 使用的对象为lombok创建的对象 这个注解不被建议使用
private DateFormat format = new SimpleDateFormat("MM-dd-YYYY");
@Synchronized
public String synchronizedFormat(Date date) {
return format.format(date);
}
相当于
private final java.lang.Object $lock = new java.lang.Object[0];
private DateFormat format = new SimpleDateFormat("MM-dd-YYYY");
public String synchronizedFormat(Date date) {
synchronized ($lock) {
return format.format(date);
}
}
生成无参构造函数、生成全部参数的构造函数
生成所有NoNull参数和常量的构造函数
将类变为建造者模式的类,编译时增加了一个Builder内部类和全字段的构造器。
public class User {
private String name;
private Integer age;
private User(String name, Integer age){
this.name = name;
this.age = age;
}
public static Builder builder() {
return new Builder();
}
public static class Builder{
private String name;
private Integer age;
private String sex;
Builder(){
}
public Builder name(String name){
this.name = name;
return this;
}
public Builder age(Integer age){
this.age = age;
return this;
}
public User build(){
return new User(this.name,this.age);
}
}
public static void main(String[] args) {
User u = User.builder().name("111").age(1).build();
System.out.println(u.toString());
}
}
在类中生成一个日志对象方便使用
@Log
public class T{
public static void main(String[] args) {
log.info("some message");
}
}