zoukankan      html  css  js  c++  java
  • lombok常用注解

    简介:

      Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。

      Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。出现的神奇就是在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法。这样就省去了手动重建这些代码的麻烦,使代码看起来更简洁些。

    @Data

      @Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。

     @Getter/@Setter

      自动生成Getter/Setter方法

    @NonNull

      非空的声明,可用于校验参数,能帮助避免空指针

      用法:

    public class NonNullExample extends Something {
      private String name;
      
      public NonNullExample(@NonNull Person person) {
        super("Hello");
        this.name = person.getName();
      }
    }

      类似于:

     1 public class NonNullExample extends Something {
     2   private String name;
     3   
     4   public NonNullExample(Person person) {
     5     super("Hello");
     6     if (person == null) {
     7       throw new NullPointerException("person");
     8     }
     9     this.name = person.getName();
    10   }
    11 }

    @Cleanup

      自动调用close方法,常用于文件读写 

      如:

     @Cleanup InputStream in = new FileInputStream(args[0]);
     @Cleanup OutputStream out = new FileOutputStream("asdaads");

    @ToString

      生成 toString()方法

    @NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor

      参数(Args)构造器(constructor)

    @EqualsAndHashCode(不做介绍)

      会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成equals和hasCode,也能通过exclude注解来排除一些属性。

    优点:

    1. 能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一定的开发效率
    2. 让代码变得简洁,不用过多的去关注相应的方法
    3. 属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等

    缺点:

    1. 不支持多种参数构造器的重载
    2. 虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性和完整性,降低了阅读源代码的舒适度
  • 相关阅读:
    android实现计时器(转)
    单例模式和静态类
    ADC电阻分压采集相关知识
    什么是中断?
    什么是时钟芯片 ?
    单片机与PLC的区别?
    FreeRTOS常用函数
    ADC采集电流相关知识
    CA和SSL证书介绍
    物联网设备的安全性预防(转)
  • 原文地址:https://www.cnblogs.com/monkay/p/10999930.html
Copyright © 2011-2022 走看看