Lombok 只会用@Setter @Getter @Data ? 老鸟带你玩转lombok
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的更多相关文章
- idea 2018 配置lombok插件及使用lombok设置实体类的getter和setter
内容简介 本文主要介绍Idea 2018中安装lombok插件,以及lombok的简单使用(生成实体类的getter和setter). lombok插件配置方法 Step 1: 打开Settings窗 ...
- 使用lombok时@Setter @Getter无效
原文链接 : https://blog.csdn.net/marion158/article/details/87893480 lombok是一个帮助简化代码的工具,通过注解的形式例如@Setter ...
- lombok标签之@Data @AllArgsConstructor @@NoArgsConstructor -如何去除get,set方法。@Data注解和如何使用,lombok
在代码中我们可以只加上标签@Data 而不用get,set方法: val : 和 scala 中 val 同名, 可以在运行时确定类型; @NonNull : 注解在参数上, 如果该类参数为 null ...
- jQuery 3.0 的 setter/getter 模式
jQuery 的 setter/getter 共用一个函数,通过是否传参来表明它是何种意义.简单说传参它是 setter,不传它是 getter. 一个函数具有多种意义在编程语言中并不罕见,比如函数重 ...
- iPhone开发教程之retain/copy/assign/setter/getter
assign: 简单赋值,不更改索引计数 copy: 建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 1. 接触过C,那么 ...
- 说声PHP的setter&getter(魔术)方法,你们辛苦了
php作为快速迭代项目的语言,其牛逼性质自不必多说.今天咱们要来说说php语言几个魔术方法,当然了,主要以setter&getter方法为主. 首先,咱们得知道什么叫魔术方法? 官方定义为:_ ...
- 周末,说声php的setter&getter(魔术)方法,你们辛苦了
php 作为快速迭代项目的语言,其牛逼性质自不必多说.今天咱们要来说说php语言几个魔术方法,当然了,本文主要以setter&getter方法说明为主. 首先,咱们得知道什么叫魔术方法? 官方 ...
- 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 ...
- 学习es6 setter/getter研究
1.背景 在ES6中,我们对类的定义如下 class Person { // 构造函数 constructor (name) { // 属性初始化 this.name = name; } // 成员方 ...
- idea中使用插件lombok简化java bean的getter/setter/log等常用功能
一.安装. 1. 2. 3. 4. . 二.使用 1. 2. 3. 结果分析,如果没有添加@Setter注解,则LombokTest中的student示例无法使用setAge()等方法.使用lombo ...
随机推荐
- 分布式系统架构1:共识算法Paxos
1.背景 今天开始更新分布式的文章,工作几年后还没系统的学习分布式的内容,趁着还有时间学习沉淀的时候多输出些文章 2.为什么需要分布式共识算法 思考:现在你有一份随时变动的数据,需要确保它正确存储在网 ...
- Reverse花指令及反混淆
花指令及反混淆 1.花指令 花指令是反调试的一种基本的方法.其存在是干扰选手静态分析,但不会影响程序的运行.实质就是一串垃圾指令,它与程序本身的功能无关,并不影响程序本身的逻辑.在软件保护中,花指 ...
- JAVA中ScheduledExecutorService的使用方法
ScheduledExecutorService 简介 ScheduledExecutorService是 Java 中的一个接口,它是ExecutorService的子接口.它主要用于在给定的延迟之 ...
- 实用干货分享 - Oracle数据库RPM部署指南
下载依赖和Oracle19c版本的RPM包 http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-dat ...
- 记一次单元测试问题com.sun.crypto.provider.HmacSHA1 cannot be cast to javax.crypto.MacSpi
在用单元测试Junit测试部门的SDK时,有个md5鉴权步骤,出现了java.lang.ClassCastException: com.sun.crypto.provider.HmacSHA1 can ...
- Qt/C++音视频开发49-多级连保存和推流设计(同时保存到多个文件/推流到多个平台)
一.前言 近期遇到个用户需要多级联的保存和推流,在ffmpegsave多线程保存类中实现这个功能,越简单越好,就是在推流的同时,能够开启自动转储功能,一边推流的同时一边录像保存到本地视频文件.最初设想 ...
- Qt开源作品41-网络调试助手增强版V2022
一.前言 做网络通信少不了网络收发数据,经常用到网络数据的调试相关工具,以便侦听数据用来判断数据是否正确,许久以前就发布过类似的工具,第一版大概在2013年,第二版大概在2017年,中间参考过不少的网 ...
- 如何使用vs将现有的项目或者文件夹(尤其是多层目录的)添加到项目中
在Visual Studio中将现有的项目或者文件夹(尤其是多层目录的)添加到项目解决方案中,步骤如下: 1.将现有项目或文件夹拷贝到指定目录下: 2.解决方案右上有个显示所有文件的按钮,如下图所示: ...
- 基于开源IM即时通讯框架MobileIMSDK:RainbowChat v8.3版已发布
关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级.高度提炼,一套API优雅支持UDP .TCP .WebSocket 三种协议,支持iOS.A ...
- VSTO踩坑记录(2)- 运用outlook对象模型发送邮件
概述 上篇文章记录了怎么样让vsto插件显示在功能区上面,这篇文章来说说怎么运用微软提供的对象方法对outlook进行操作,附上官方文档. 这次示例我们来用代码发一封邮件,先简单拉几个控件,分别代表要 ...