前言
使用lombok需要在pom里添加依赖和在idea里添加lombok插件
日志打印(7种)需要配合日志框架使用
@Slf4j @XSlf4j @Log @Log4j @Log4j2 @CommonsLog @JBossLog
@Getter和@Setter
添加getter和setter方法
@EqualsAndHashCode(of = {"name","age"})
重写equals方法和hashcode方法,of后指定只有哪些字段参与equals方法和hashcode方法
@ToString(of = {"name","age"})
重写ToString方法,of后指定只有哪些字段参与ToString
@NoArgsConstructor(access = AccessLevel.PRIVATE)
无参构造函数,access设置构造函数为public或private,单例模式可以用
@AllArgsConstructor
全参构造函数
@RequiredArgsConstructor
用于类上,会给前面标有final和@NonNull的字段创建构造函数,final字段要求没有初始值,并且不能有无参构造函数
@Data
包含@Getter、@Setter、@ToString、@EqualsAndHashCode、@RequiredArgsConstructor
@Value(staticConstructor = "newInstance")
使所有的成员变量都是final的,是以下注解的集合:@ToString、@EqualsAndHashCode、@Getter、@RequiredArgsConstructor
staticConstructor使生成的构造方法私有化,并且生成一个返回对象为当前类的无参静态方法,方法名为staticConstructor值
@Value的成员变量都是final的,没有setter方法,适合加在值不希望被改变的类上,适合用在POJO或DTO上
@Accessors(chain = true, fluent = true)
chain链式调用getter和setter
fluent可以让对象直接用字段来赋值(有参数)或取值(无参数),类似jQuery
student.age(10);
student.age();
@Builder和@Singular("add")
@Builder构造者模式,@Singular("add")加在字段上,如List字段,用自定义add方法添加值
Student stu = Student.builder().name("name").age(10).add("read").add("dance").build();
@SneakyThrows
异常处理try catch
@Synchronized
添加同步锁
@Cleanup
自动关闭资源
@Cleanup FileInputStream inStream = new FileInputStream(in);
val和var
自动判断变量类型
val list = new ArrayList<String>();
var name = "hello";
@FieldNameConstants
加在类上,通过Student.Fields.name或Student.Fields.age来返回字段名name或age
可用于mybatis更新字段
@NonNull
加在方法参数列表前,判断参数不为空
加在类字段前,表示该字段不能设置为空