lombok的官网

官方网址 : https://projectlombok.org

lombok 稳定特性文档:https://projectlombok.org/features/

lombok 实验特性文档: https://projectlombok.org/features/experimental/

lombok是什么?

​ Lombok项目是一个java库,它可以自动插入到编辑器和构建工具中,增强java的性能。说简单点,它是对Java语言的一个增强,相当于java的语法糖概念。这里不做太多的解释。阅读本文章需要有一定的实操经验,也完全使用过lombok插件。

lombok能做什么?

lombok 有哪些注解?

稳定特性:

  • var 用于定义变量、来自 import lombok.var;
  • val 用于定义常量、来自 import lombok.val;
  • @NonNull ⽤来指定某个⽅法⼊参不能为null 若为null 将抛出空指针异常 。 来自 import lombok.NonNull;
  • @Cleanup 自动资源管理、默认调用close()方法。来自 import lombok.Cleanup;
  • @Getter/@Setter 用来生成类的字段的setXX()、getXX()方法。来自 import lombok.Setter; import lombok.Getter;
  • @ToString 用来生成类的toString()方法。来自 import lombok.ToString;
  • @EqualsAndHashCode用来生成类的equals()与hashCode()方法。来自 import lombok.EqualsAndHashCode;
  • @NoArgsConstructor, @RequiredArgsConstructor @AllArgsConstructor用于生成类的构造函数、无参构造、可选参构造、全参构造。来自 import lombok.NoArgsConstructor; import lombok.RequiredArgsConstructor;import lombok.AllArgsConstructor;
  • @Data@ToString @EqualsAndHashCode @Getter @Setter @RequiredArgsConstructor 的合集表示。来自 import lombok.Data;
  • @Value用于将类变成final 。来自import lombok.Value;
  • @Builder用来生成对象的builder模式,并且可以为对象链式赋值。来自import lombok.Builder;
  • @SneakyThrows 用于消除编译时异常、转化为运行时异常。来自import lombok.SneakyThrows;
  • @With 用于为类全局字段变量生成以'withXX'的方法返回新的类对象。依赖@AllArgsConstructor;来自import lombok.With;
  • @Getter(lazy=true) 用于懒加载的方式初始化变量,此字段必须为final。来自import lombok.Getter;
  • @Log @CommonsLog 、@Flogger、@JBossLog、@Log4j、@Log4j2、@Slf4j、@XSlf4j、@CustomLog 用于打印日志。来自 import lombok lombok.extern.*;

实验特性:

lombok怎么用?

Lombok 只会用@Setter @Getter @Data ? 老鸟带你玩转lombok的更多相关文章

  1. idea 2018 配置lombok插件及使用lombok设置实体类的getter和setter

    内容简介 本文主要介绍Idea 2018中安装lombok插件,以及lombok的简单使用(生成实体类的getter和setter). lombok插件配置方法 Step 1: 打开Settings窗 ...

  2. 使用lombok时@Setter @Getter无效

    原文链接 : https://blog.csdn.net/marion158/article/details/87893480 lombok是一个帮助简化代码的工具,通过注解的形式例如@Setter ...

  3. lombok标签之@Data @AllArgsConstructor @@NoArgsConstructor -如何去除get,set方法。@Data注解和如何使用,lombok

    在代码中我们可以只加上标签@Data 而不用get,set方法: val : 和 scala 中 val 同名, 可以在运行时确定类型; @NonNull : 注解在参数上, 如果该类参数为 null ...

  4. jQuery 3.0 的 setter/getter 模式

    jQuery 的 setter/getter 共用一个函数,通过是否传参来表明它是何种意义.简单说传参它是 setter,不传它是 getter. 一个函数具有多种意义在编程语言中并不罕见,比如函数重 ...

  5. iPhone开发教程之retain/copy/assign/setter/getter

    assign: 简单赋值,不更改索引计数 copy: 建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 1. 接触过C,那么 ...

  6. 说声PHP的setter&getter(魔术)方法,你们辛苦了

    php作为快速迭代项目的语言,其牛逼性质自不必多说.今天咱们要来说说php语言几个魔术方法,当然了,主要以setter&getter方法为主. 首先,咱们得知道什么叫魔术方法? 官方定义为:_ ...

  7. 周末,说声php的setter&getter(魔术)方法,你们辛苦了

    php 作为快速迭代项目的语言,其牛逼性质自不必多说.今天咱们要来说说php语言几个魔术方法,当然了,本文主要以setter&getter方法说明为主. 首先,咱们得知道什么叫魔术方法? 官方 ...

  8. Writable atomic property '***' cannot pair a synthesized setter/getter with a user defined

    1. warning: Semantic Issue: Writable atomic property 'number' cannot pair a synthesized setter/gette ...

  9. 学习es6 setter/getter研究

    1.背景 在ES6中,我们对类的定义如下 class Person { // 构造函数 constructor (name) { // 属性初始化 this.name = name; } // 成员方 ...

  10. idea中使用插件lombok简化java bean的getter/setter/log等常用功能

    一.安装. 1. 2. 3. 4. . 二.使用 1. 2. 3. 结果分析,如果没有添加@Setter注解,则LombokTest中的student示例无法使用setAge()等方法.使用lombo ...

随机推荐

  1. 深入理解 HTTP 协议:从基础到实践全解析

    在当今数字化时代,HTTP 协议如同互联网世界的"语言",支撑着无数网页浏览.数据传输和在线交互.无论你是初涉编程的新手,还是经验丰富的开发者,深入掌握 HTTP 协议都至关重要. ...

  2. Win10底部任务栏卡死的终极解决方法

    原因:微软自带的资讯和兴趣因国内网络限制,造成失效. 解决方案:底部右键->资讯和兴趣->关闭. 以上仅限WIn10操作系统,win11操作系统以上忽略.

  3. 鸿蒙应用开发从入门到入行 - 篇4:层叠布局、自定义组件、ForEach

    第四篇 - 层叠布局.自定义组件.ForEach循环生成组件 导读:在本篇文章里,您将掌握层叠布局.自定义组件的用法,特别是自定义组件将来的开发中必然会用,其中应该特别关注自定义组件的一些规范与装饰器 ...

  4. 关于 JavaScript 中的 Array.reduce()

    关于 JavaScript 中的 Array.reduce() reduce() 方法在 MDN 的定义看起来很复杂: reduce((previousValue, currentValue, cur ...

  5. RepeatReadRequestWrapper

    package cn.service.web.common.filter; import com.alibaba.fastjson.JSON; import org.apache.commons.io ...

  6. Qt编写视频监控系统67-录像计划(支持64通道7*24录像设置)

    一.前言 录像计划这个功能一直挂了很久,之前做的也都有保存视频文件功能,其中还分了三大种,第一种是手动开启和停止录像:第二种是按照指定时长比如10s保存文件:第三种是定时30分钟一个文件一直保存.这三 ...

  7. Qt编写地图综合应用52-加载离线地图

    一.前言 离线地图的加载其实和在线地图的加载方法几乎一样,唯一的最大区别就是,之前可能一个js文件引入即可,现在需要多个本地的js文件引入,而且网上流传的js文件的版本比较旧,意味着现在新版的支持op ...

  8. 基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.7版已发布

    关于RainbowChat RainbowChat是一套基于开源IM聊天框架 MobileIMSDK 的产品级移动端IM系统.RainbowChat源于真实运营的产品,解决了大量的屏幕适配.细节优化. ...

  9. Solution Set -「NOIP Simu.」20221003

    \(\mathscr{A}\sim\) 二分图排列   定义一个数列 \(\{a_n\}\) 合法, 当且仅当无向图 \(G=(\{1..n\},\{(i,j)\mid i<j\land a_i ...

  10. h5 canvas 视频透明度抠图,视频需要一个灰度通道副本表示透明度

    视频透明度抠图,视频需要一个灰度通道副本表示透明度 目前抖音等直播平台的礼物特效就是这个方法处理的 <!DOCTYPE html> <html> <head> &l ...