当前位置: 首页 > article >正文

Lombok -----此java库 常用的注解及其功能总结

总结

        Lombok 是一个 Java 库,它可以帮助开发者减少在 Java 中编写那些繁琐的“boilerplate”代码的工作量,比如 getter 方法、setter 方法、构造函数、toString 方法等。       

        通过简单的注解,Lombok 能够自动为你的类生成这些方法,从而使得代码更加简洁,同时也减少了出错的机会。


常用的注解及其功能简介

  1. @Getter@Setter

    • 这两个注解分别用来生成类中所有字段(或指定字段)的 getter 和 setter 方法。
    • 可以添加到类级别或者特定的字段上。
    • 例如:
      1private String name;
      2@Getter @Setter
      3private int age;
  2. @NoArgsConstructor

    • 自动生成一个无参构造器。
    • 如果类中有私有的构造器,则需要显式地使用此注解。
  3. @AllArgsConstructor

    • 自动生成包含类中所有非静态变量的构造函数。
    • 对于有多个属性的类来说非常有用。
  4. @RequiredArgsConstructor

    • 生成包含 final 或者 @NonNull 注解的字段的构造器。
  5. @ToString

    • 自动生成 toString() 方法,包括类中的所有字段。
    • 可以通过配置排除某些字段,如 @ToString(exclude = "password")
  6. @EqualsAndHashCode

    • 自动生成 equals 和 hashCode 方法。
    • 可以指定哪些字段用于比较,如 @EqualsAndHashCode(of = {"id"})
  7. @Value

    • 创建一个不可变的类。
    • 所有字段默认是 final,并且会自动生成 getter 方法。
    • 类不能被继承。
  8. @Builder

    • 提供了一个类似 Java 8 Optional 类型的构建者模式实现。
    • 允许以流畅的方式创建对象实例,可以指定必填或选填参数。
    • 可以与 @AllArgsConstructor 结合使用,提供所有字段的构建器。


注意事项

        为了使用 Lombok,你需要将它的依赖加入到你的项目中,并确保 IDE 支持 Lombok 插件,以便正确地解析和显示由 Lombok 自动生成的方法。

        虽然 Lombok 大大简化了代码,但也有一些争议,比如它增加了编译过程的复杂性,可能对调试造成一定影响等。因此,在使用 Lombok 时,也需要权衡其利弊。


http://www.kler.cn/news/312710.html

相关文章:

  • 前端vue-单选按钮的实现
  • Bigemap GIS Office 2024注册机 全能版地图下载软件
  • 操作系统的同步互斥
  • 分类预测|基于改进的灰狼IGWO优化支持向量机SVM的数据分类预测matlab程序 改进策略:Cat混沌与高斯变异
  • Echats 实现CPK (过程能力)研究报告
  • B+树(B+TREE)索引
  • Qt 模型视图(一):概述
  • 硬件工程师笔试面试——集成电路
  • 分布式消息服务Kafka版的详细解析和配置方式
  • 网络高级day01(Modbus 通信协议:Modbus TCP)
  • 【类型黑市】指针
  • Angular面试题四
  • 如何使用ssm实现企业人事管理系统+vue
  • monorepo基础搭建教程(从0到1 pnpm+monorepo+vue)
  • 最新版本TensorFlow训练模型TinyML部署到ESP32入门实操
  • matlab模拟时间有负数的信号频谱
  • 前端在网络安全攻击问题上能做什么?
  • jacoco-maven-plugin使用
  • Qt中文乱码解决
  • 动手学深度学习(pytorch土堆)-06损失函数与反向传播、模型训练、GPU训练
  • 零基础玩转实在Agent -- 基础篇|实在Agent研究
  • 算法leecode笔记
  • 基于PHP的电脑线上销售系统
  • 小米电视,无需U盘,直接通过ADB远程安装APK,很方便!
  • 【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL16
  • 修改状态的标准模版
  • 【移动端】Flutter与uni-app:全方位对比分析
  • MATLAB绘图:2.plot函数
  • vulnhub靶场 DC-3
  • axios二次封装