Lombok常用注解

  • @Data : 注在类上,是以下注解的集合:@ToString @EqualsAndHashCode @Getter @Setter @RequiredArgsConstructor
    @Getter/@Setter: 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。可以设定访问权限及是否懒加载等。
  • @ToString:作用于类,覆盖默认的toString()方法,可以通过of属性限定显示某些字段,通过exclude属性排除某些字段:@ToString(of={"name", "sex"}, exclude={"age"}),@ToString.Exclude可以加在字段上
  • @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor:作用于类上,用于生成构造函数。有staticName、access等属性。staticName属性一旦设定,将采用静态方法的方式生成实例,access属性可以限定访问权限。
  • @NoArgsConstructor:生成无参构造器;
  • @RequiredArgsConstructor:生成包含final和@NonNull注解的成员变量的构造器;
  • @AllArgsConstructor:生成全参构造器
  • @Setter : 注在属性上,提供 set 方法
  • @Getter : 注在属性上,提供 get 方法
  • @EqualsAndHashCode : 注在类上,提供对应的 equals 和 hashCode 方法
  • @Log4j/@Slf4j : 注在类上,提供对应的 Logger 对象,变量名为 log
  • @NonNull:主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常。
  • @Builder注解赋值新对象
    UserInfo userInfo = UserInfo.builder()
    .name("zzl")
    .email("bgood@sina.com")
    .build();
    @Builder注解修改原对象的属性值
    修改实体,要求实体上添加@Builder(toBuilder=true)
    userInfo = userInfo.toBuilder()
    .name("OK")
    .email("zgood@sina.com")
    .build();
  • @Cleanup:自动关闭资源,针对实现了java.io.Closeable接口的对象有效,如:典型的IO流对象,@Cleanup InputStream in = new FileInputStream(file);
  • @SneakyThrows:可以对受检异常进行捕捉并抛出,需要throws Exception的方法,可以加这个注解替代
  • @Synchronized:作用于方法级别,可以替换synchronize关键字或lock锁,用处不大.
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。