Java通识 -- Lombok

版权声明:转载原创博客请附上原文链接 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;
}

@Getter/@Setter注解效果图

三:@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;
}

@ToString/@EqualsAndHashCode效果图

四:@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;
}

@Data注解效果图

八:@Cleanup

  • 作用:自动关闭资源,实现Closeable接口有效,经典例如IO等
    @Cleanup FileInputStream fis = new FileInputStream(new File(""));

九:@SneakyThrows

  • 作用:捕获异常并进行抛出处理
    @SneakyThrows
    public static void testMethod(){
        @Cleanup FileInputStream fis = new FileInputStream(new File(""));
    }

猜你喜欢

转载自blog.csdn.net/weixin_43495590/article/details/89491118