Lombok详细笔记

这篇具有很好参考价值的文章主要介绍了Lombok详细笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

lombok介绍

lombok是一个开源的代码生成库,能以简单的注解形式来简化Java类中的大量样板代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量。lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法,使代码看起来更简洁。

lombok对应的maven坐标:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.10</version>
</dependency>

lombok常用注解

注解 说明
@Setter 注解在类或属性,注解在类时为所有属性生成setter方法,注解在属性上时只为该属性生成setter方法
@Getter 使用方法同@Setter,区别在于生成的是getter方法
@ToString 注解在类,添加toString方法
@EqualsAndHashCode 注解在类,生成hashCode和equals方法
@NoArgsConstructor 注解在类,生成无参的构造方法
@RequiredArgsConstructor 注解在类,为类中需要特殊处理的属性生成构造方法,比如final和被@NonNull注解的属性
@AllArgsConstructor 注解在类,生成包含类中所有属性的构造方法
@Data 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法
@Slf4j 注解在类,生成log变量,用于记录日志
@Builder 将类转变为建造者模式

lombok 实战

创建用户类
package com.example.pojo;
import lombok.*;
import lombok.extern.slf4j.Slf4j;

@Setter //创建所有字段的Set方法
@Getter //创建所有字段的Get方法
@NoArgsConstructor //创建无参构造方法
@AllArgsConstructor //创建全参构造方法
@ToString   //重写ToString方法
@Builder  //开启使用建造者模式创建对象
public class User {
    String id;
    //@Setter 创建usernae字段的Set方法
    String username;
    int age;
}

也可以使用@Data注解替代,但是构造方法无法替代:

package com.example.pojo;
import lombok.*;
import lombok.extern.slf4j.Slf4j;

@Data  // 创建setter、getter、equals、canEqual、hashCode、toString方法
@NoArgsConstructor //创建无参构造方法
@AllArgsConstructor //创建全参构造方法 
public class User {
    String id;
    //@Setter 创建usernae字段的Set方法
    String username;
    int age;
}
建造者模式
// 等价于
//User jay = new User();
//jay.setAge(23);
//jay.setId("10082");
//jay.setUsername("jay");

User jay = User.builder()
        .age(23)
        .id("10082")
        .username("Jay")
        .build();

使用@Builder实际上会在User中加入下面的代码,使用静态内部类的方式提供方法接受外部的值:文章来源地址https://www.toymoban.com/news/detail-501398.html

public class User {
    String id;
    String username;
    int age;
    public static UserBuilder builder(){
        return new UserBuilder();
    }
    public static class UserBuilder{
        private  String id;
        private String username;
        private int age;
        public UserBuilder id(String id){
            this.id = id;
            return this;
        }
        public UserBuilder username(String username){
            this.username = username;
            return this;
        } 
        public UserBuilder age(int age){
            this.age = age;
            return this;
        }
    }
}
总结
  • 使用 lombok 插件可以节省大量劳动力代码;
  • 可以很方便使用建造者模式;

到了这里,关于Lombok详细笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Lombok导致代码单元测试覆盖率崩塌

    Lombok 由于其使用的便利性, 目前流传非常广泛。甚至有呼声希望其能被Java官方引入,成为JDK的一部分。 当然凡事都有两面性,Lombok的引入也是有代价的。一时注释一时爽,结果导致代码在不知不觉中翻了好几倍。 例如以下几个简单的注解,背后是N多个自动生成的方法: @Da

    2024年02月07日
    浏览(27)
  • IDEA2023中使用SpringBoot整合Lombok全过程及详细用法

    🧑‍💻 作者名称 :DaenCode 🎤 作者简介 :CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开发。技术尚浅,闭关学习中······ 😎 人生感悟 :尝尽人生百味,方知世间冷

    2024年02月07日
    浏览(27)
  • Javaweb之数据库连接池以及lombok类库的详细解析

    在前面我们所讲解的mybatis中,使用了数据库连接池技术,避免频繁的创建连接、销毁连接而带来的资源浪费。 下面我们就具体的了解下数据库连接池。 3.1 介绍 没有使用数据库连接池: 客户端执行SQL语句:要先创建一个新的连接对象,然后执行SQL语句,SQL语句执行后又需要

    2024年02月03日
    浏览(50)
  • IDEA2021.1.3版本lombok插件--代码爆红问题解决

      最近,突然心血来潮将自己工作中开发使用的idea升级到2021.1.3版本,安装成功后,打开代码发现 有关get、set方法全部爆红 ,不用想,肯定是 Lombok插件问题 ,通过setting-plugin里面搜索Lombok居然不存在,再一看原来是该版本idea自带Lombok插件,与当前环境不适配。    但是

    2024年02月08日
    浏览(44)
  • Spring第三课,Lombok工具包下载,对应图书管理系统列表和登录界面的后端代码,分层思想

    目录 一、Lombok工具包下载 二、前后端互联的图书管理系统 规范  三、分层思想 三层架构: 1.表现层 2.业务逻辑层 3.数据层 这个工具包是为了做什么呢? 他是为了不去反复的设置setting and getting 而去产生的工具包 ⚠️工具包下载:推荐不要下载太新的(较高的),也不要太

    2024年02月05日
    浏览(30)
  • JavaWeb小项目——【源码】使用Vue+axios+Servlet+Lombok+JDBC+MySQL技术栈实现云笔记管理系统案例的开发

    使用Vue+axios+Servlet+Lombok+JDBC+MySQL技术栈实现云笔记管理系统案例的开发 (一)题目要求 使用Vue+axios+Servlet+Lombok+JDBC+MySQL技术栈实现云笔记管理系统案例的开发 (二)数据库设计(10分) 创建数据库woniu_note (1)用户表:t_user,必要字段包含:用户名(username)、密码(passwd)

    2024年02月09日
    浏览(28)
  • Lombok报错:class lombok.javac.apt.LombokProcessor

    错误信息 java: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x3278991b) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module ​​​​​​​问题原因:   1、

    2024年02月16日
    浏览(43)
  • 新版Android Studio搜索不到Lombok以及无法安装Lombok插件的问题

    在最近新版本的Android Studio中,使用插件时,在插件市场无法找到Lombox Plugin,具体表现如下图所示: 1、操作步骤: (1)打开Android Studio-Settings-Plugins,搜索Lombok,发现并没有带小辣椒的Lombok,如下图所示: (2)所以,想到通过插件市场自己手动下载安装,插件市场的地址为

    2024年02月07日
    浏览(46)
  • DAY08_MyBatisPlus——入门案例&标准数据层开发CRUD-Lombok-分页功能&DQL编程控制&DML编程控制&乐观锁&快速开发-代码生成器

    问题导入 MyBatisPlus环境搭建的步骤? 1.1 SpringBoot整合MyBatisPlus入门程序 ①:创建新模块,选择Spring初始化,并配置模块相关基础信息 ②:选择当前模块需要使用的技术集(仅保留JDBC) ③:手动添加MyBatisPlus起步依赖 注意事项1:由于mp并未被收录到idea的系统内置配置,无法直

    2024年02月09日
    浏览(32)
  • Java使用Lombok详解

    Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现 Lombok,开发人员可以节省构建诸如 hashCode() 和 equals() 、 getter / setter 这样的方法以及以往用来分类各种 accessor 和 mutator

    2023年04月08日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包