首页 > 其他分享 >【学习笔记】Lombok的使用

【学习笔记】Lombok的使用

时间:2023-01-05 12:22:26浏览次数:40  
标签:无参 get 笔记 学习 构造 注解 Lombok lombok

Lombok的使用

Lombok是一款java开发插件,它可以通过注解来减少业务中冗长和繁琐的代码,尤其是对于简单的java模型对象(POJO)。

使用步骤:

  1. 在IDEA中下载Lombok插件

    在setting中找到Plugins,搜索lombok,install即可

  2. 在项目中引入lombok的jar包

    可以从maven仓库中搜索lombok依赖

    <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.24</version>
        <scope>provided</scope>
    </dependency>
    ​
  3. 在实体类上加注解

 

当前版本lombok全部注解:

@Getter and @Setter
@FieldNameConstants
@ToString
@EqualsAndHashCode
@AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor
@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog, @Flogger, @CustomLog
@Data
@Builder
@SuperBuilder
@Singular
@Delegate
@Value
@Accessors
@Wither
@With
@SneakyThrows
@val
@var
experimental @var
@UtilityClass

 

常用注解:

@Data : 无参构造、get、set、equals、hashCode、toString

@AllArgsConstructor : 全部参数构造器

@NoArgsConstructor :无参构造

@Getter and @Setter :get、set

@ToString :toString方法 @EqualsAndHashCode :equals和hashcode方法

image-20230105120418460

 

注意点:

  • @Getter and @Setter 注解作用域是类和变量,作用在类上,是给所有的变量都写get和set方法。作用在变量上是只给那一个变量写get和set方法。

  • @Data 只有无参构造,如果想要使用@AllArgsConstructor加有参构造,那么之前的@Data生成的无参构造就消失了(因为java规定想要有参构造和无参构造必须显示定义无参构造),这时可以自己手写无参构造,也可以使用 @NoArgsConstructor

  • lombok虽然简单方便,但是存在一些争议,有人认为像lombok这种直接简化Java项目源码的插件会使Java走向灭亡。

标签:无参,get,笔记,学习,构造,注解,Lombok,lombok
From: https://www.cnblogs.com/wztblogs/p/17027188.html

相关文章

  • nginx学习笔记
    ​​nginx系列之一:nginx入门​​nginx系列之二:配置文件解读nginx系列之三:日志配置nginx系列之四:web服务器nginx系列之五:负载均衡nginx系列之六:cache服务nginx系列之七:限流......
  • Android 性能调优笔记
    1、​​Android性能全面分析与优化方案研究—几乎是史上最全最实用的​​2、Android性能优化总结3、Android应用内存泄漏的定位、分析与解决策略4、Java垃圾回收器的GC......
  • C# 多线程学习笔记
     ///进程:程序在服务器上运行是,占据的计算资源合集,称之为进程;///进程之间不会相互干扰--进程之间的通信比较困难(分布式)///线程:程序执行的最小单位,相应操作的最小执......
  • 极光笔记 | 当前最佳实践:Header Bidding 与瀑布流混合请求技术
    通过这篇文章您讲将了解:HeaderBidding的发展史Waterfall、HeaderBidding的逻辑及优劣势为什么说HeaderBidding与瀑布流混合请求技术是当前最佳实践PART01、H......
  • yaml文件学习
    YAML文件详解YAML文件是SpringBoot使用一个全局的配置,配置文件名称是固定的,是用于修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了。作用与prop......
  • Python学习day02
    一、用户交互1.猜年龄death_age=80name=input("yourname:")age=int(input("yourage:"))print("yourname"name)print("youcanstilllivefor"death_age-age"yea......
  • 【MySQL 8】MySQL 5.7都即将停只维护了,是时候学习一波MySQL 8了【转】
    MySQL8新特性选择MySQL8的背景:MySQL5.6已经停止版本更新了,对于MySQL5.7版本,其将于2023年10月31日停止支持。后续官方将不再进行后续的代码维护。另外,MySQL8.0......
  • Debian初始化笔记
    安装后操作1.备份原来的源,防止换源完毕之后新源不能用Debian系统中,软件源文件地址为:/etc/apt/sources.listsudomv/etc/apt/sources.list/etc/apt/sources.list.bak......
  • cereas学习(5) vins-fusion vio融合gps全局优化
      残差定义  Factors.h/********************************************************Copyright(C)2019,AerialRoboticsGroup,HongKongUniversityof......
  • 雅思听力笔记——何琼
    听力考试概述1、听力评分情况合计40小题,每小题一分2、听力考试的相关注意事项提供时间读题听力只放一遍,听第二遍做的好完全没用4大段录音,合计40题30分钟的听力时......