版权声明:转载原创博客请附上原文链接 https://blog.csdn.net/weixin_43495590/article/details/89491118
一:概述
实体类编辑包含属性的get/set方法、构造函数、toString()、hash()等,但是当属性修改时往往会漏掉toString()亦或是有参构造的重写导致出现错误。且大量get/set看起来是让人糟心的,lombok使用注解帮助生成对应内容,简化类。动态的特性不再担心类属性修改
二:@GET/@SET
- 作用:类上表示为所有属性生成get/set方法,属性上为该属性生成
- 属性:value标记生成方法访问权限,默认public、lazy标记是否延迟加载,默认fals
@Getter(value = AccessLevel.PUBLIC,lazy = true)
@Setter
public class Person {
private String name;
private Integer age;
}
class Test{
@Getter @Setter
private String email;
}
三:@ToString / @EqualsAndHashCode
- 作用:@ToString注解重写toString(),@EqualsAndHashCode注解重写equals()和hashCode()
- 属性:of标记包含属性,exclude标记不包含属性,属性含义@EqualsAndHashCode与@ToString一致
@ToString(of = {"name","age"},exclude = {"age"})
@EqualsAndHashCode(of = {"name"},exclude = {"age"})
public class Person {
private String name;
private Integer age;
}
四:@NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor
- 作用:@NoArgsConstructor生成无参构造、@RequiredArgsConstructor生成包含@NonNull修饰属性的构造器、@AllArgsConstructor生成所有属性的构造器
- 参数:staticName将生成静态方法获取对象实例、access限定访问权限
@NoArgsConstructor(staticName = "no",access = AccessLevel.PROTECTED)
@RequiredArgsConstructor(staticName = "required")
@AllArgsConstructor(staticName = "all")
class Test{
private String email;
@NonNull
private String address;
}
五:@NonNull
- 作用:作用与成员变量亦或是参数标识不能为空,为空抛出空指针异常
六:@Builder
- 作用:将类转换为建造者模式
七:@Data
- 作用于类上,效果相当于@Getter、@Setter、@EqualsAndHashCode、@RequiredArgsConstructor、@ToString
@Data
class Test{
private String email;
@NonNull
private String address;
}
八:@Cleanup
- 作用:自动关闭资源,实现Closeable接口有效,经典例如IO等
@Cleanup FileInputStream fis = new FileInputStream(new File(""));
九:@SneakyThrows
- 作用:捕获异常并进行抛出处理
@SneakyThrows
public static void testMethod(){
@Cleanup FileInputStream fis = new FileInputStream(new File(""));
}