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增加新的节点(代码块)
  • 相关阅读:
    割边
    割点
    缩点
    强连通分量
    本地读取服务器Xml文件及本地读本地的xml
    获取webconfig配置文件内容
    c# winform中使用WebKit实现网页与winform的交互
    【Django】ContentType组件
    【Django】实现跨域请求
    【DRF解析器和渲染器】
  • 原文地址:https://www.cnblogs.com/juncaoit/p/12361592.html
Copyright © 2011-2022 走看看