zoukankan      html  css  js  c++  java
  • @Data注解 与 lombok

      在IDEA中使用了注解@Getter,但是发现在右侧出现private field 'xxx' is never assigned警告,加上一个@Setter就可以解决了。然后,感觉真的是多此一举,直接使用@Data就可以了。

      现在对lombok中常用的几个注解做一些说明。

    1.类上加上@Data后的效果

      可以发现,已经存在set与get方法了。

      

    2.一些常用的注解

      @Data : 注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法
      @AllArgsConstructor : 注在类上,提供类的全参构造
      @NoArgsConstructor : 注在类上,提供类的无参构造
      @Setter : 注在属性上,提供 set 方法
      @Getter : 注在属性上,提供 get 方法
      @EqualsAndHashCode : 注在类上,提供对应的 equals 和 hashCode 方法
      @Log4j/@Slf4j : 注在类上,提供对应的 Logger 对象,变量名为 log


    3.原理

      Lombok本质上就是一个实现了“JSR 269 API”的程序。在使用javac的过程中,它产生作用的具体流程如下:

    • javac对源代码进行分析,生成了一棵抽象语法树(AST)
    • 运行过程中调用实现了“JSR 269 API”的Lombok程序
    • 此时Lombok就对第一步骤得到的AST进行处理,找到@Data注解所在类对应的语法树(AST),然后修改该语法树(AST),增加getter和setter方法定义的相应树节点
    • javac使用修改后的抽象语法树(AST)生成字节码文件,即给class增加新的节点(代码块)
  • 相关阅读:
    簡化SQL Insert、Update、Delete、Select的方法
    Microsoft SqlHelper Class
    EntLib5.0 日志应用程序块(logging) 使用与配置
    EnterpriseLibrary及Log4Net於WebConfig或AppConfig的相關配置
    LogHelper
    log4net使用详解
    Create\Move\Delte Folder\File
    Log4Net使用详解(续)
    DataSet 类(四)读写XML
    SqlDataAdapter类
  • 原文地址:https://www.cnblogs.com/juncaoit/p/12361592.html
Copyright © 2011-2022 走看看