tnblog
首页
视频
资源
登录

JAVA开发神器Lombok

4987人阅读 2021/10/25 18:52 总访问:1590676 评论:0 收藏:0 手机
分类: Java

摘抄链接:https://www.cnblogs.com/secbro/p/12159476.html

第一步,引入pom中依赖,当前最细版本1.18.10。(Maven下)

<dependency>

    <groupId>org.projectlombok</groupId>

    <artifactId>lombok</artifactId>

    <version>1.18.10</version>

</dependency>

Lombok的使用

@Data

@Data最常用的注解之一。注解在类上,提供该类所有属性的getter/setter方法,还提供了equals、canEqual、hashCode、toString方法。

@Setter

作用于属性上,为该属性提供setter方法; 作用与类上,为该类所有的属性提供setter方法, 都提供默认构造方法。

@Getter

基本使用同@Setter方法,不过提供的是getter方法,不再赘述。

@Log4j

作用于类上,为该类提供一个属性名为log的log4j日志对象。

@AllArgsConstructor

作用于类上,为该类提供一个包含全部参的构造方法,注意此时默认构造方法不会提供。

@NoArgsConstructor

作用于类上,提供一个无参的构造方法。可以和@AllArgsConstructor同时使用,此时会生成两个构造方法:无参构造方法和全参构造方法。

@EqualsAndHashCode

作用于类上,生成equals、canEqual、hashCode方法。具体效果参看最开始的@Data效果。

@NonNull

作用于属性上,提供关于此参数的非空检查,如果参数为空,则抛出空指针异常。

@RequiredArgsConstructor

作用于类上,由类中所有带有@NonNull注解或者带有final修饰的成员变量作为参数生成构造方法。

@Cleanup

作用于变量,保证该变量代表的资源会被自动关闭,默认调用资源的close()方法,如果该资源有其它关闭方法,可使用@Cleanup(“methodName”)来指定。

@ToString

作用于类上,生成包含所有参数的toString方法。见@Data中toString方法。

@Value

作用于类上,会生成全参数的构造方法、getter方法、equals、hashCode、toString方法。与@Data相比多了全参构造方法,少了默认构造方法、setter方法和canEqual方法。

该注解需要注意的是:会将字段添加上final修饰,个人感觉此处有些失控,不太建议使用。

@SneakyThrows

作用于方法上,相当于把方法内的代码添加了一个try-catch处理,捕获异常catch中用Lombok.sneakyThrow(e)抛出异常。使用@SneakyThrows(BizException.class)指定抛出具体异常

@Synchronized

作用于类方法或实例方法上,效果与synchronized相同。区别在于锁对象不同,对于类方法和实例方法,synchronized关键字的锁对象分别是类的class对象和this对象,而@Synchronized的锁对象分别是私有静态final对象lock和私有final对象lock。也可以指定锁对象

val

使用val作为局部变量声明的类型,而不是实际写入类型。 执行此操作时,将从初始化表达式推断出类型。

public Map<String, String> getMap() {
      val map = new HashMap<String, String>();
      map.put("1", "a");
      return map;
}


@Builder

作用于类上,如果你喜欢使用Builder的流式操作,那么@Builder可能是你喜欢的注解了。

小结

最后,说一下个人的看法,此神器虽然好用,但也不建议大家无条件的使用,为了程序的效率等问题,该自己亲手写的代码还是要自己亲手写。毕竟,只有定制化的才能达到最优化和最符合当前场景。


评价

JAVA8 十大新特性详解

前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特...

如何评价JAVA11

JDK11作为LTS长期支持版本, 在今后几年会逐步像JDK8一样流行, 因为下一个LTS版本要等待3年后的JDK17了.从JDK11累积了JDK9,1...

JAVA中的堆和栈以及堆栈的区别

在正式内容开始之前要说明一点,我们经常所说的堆栈堆栈是堆和栈统称,堆是堆,栈是栈,合在一起统称堆栈;  1.栈(stack)...

JAVAScript中的事件委托

什么是事件委托事件委托在JavaScript中是非常常见的,它主要用于对某个元素中的子元素的冒泡事件进行监听。JavaScript高级...

该用 JAVA 12 还是坚持 JAVA 11?

搭上火箭也追不上的 Java 更新速度,不少程序员们大呼,我可不可以坚持使用 Java 8?!但是对于已使用到 LTS 版本的 Java 1...

JAVAscript阻止scroll事件多次执行的思路及实现

//测试代码 window.onscroll=function(){ alert(&quot;haha&quot;); }鼠标滑动之后一直点击提示框才可以,我想要的是鼠...

JAVA学习路线

第一部分:Java开发介绍1. DOS常用命令2. JVM、JRE、JDK之间的关系3. Java开发环境的搭建:安装JDK,配置环境变量4. Java入...

JAVA web学习路线

第二阶段:JavaWeb第一部分:HTML51. html概述2. html基本标签3. 图片标签4. 超链接标签5. 表格标签6. 无序列表标签7. 有序...

JAVA框架

第三阶段:Java框架第一部分:Maven1. Maven环境搭建2. Maven构建项目3. Maven本地仓库配置4. Maven中央仓库配置5. Maven基...

JAVA + 云数据

第四阶段:Java + 云数据第一部分:Linux版本1.Linux简介和安装2.Linux和Windows的区别3.Linux远程登录4.Linux常用命令5.Li...

JAVAScript的事件分类

JavaScript的事件大致可以分为几类,了解这些事件分类将有助于理解和组织代码。1、依赖于设备的输入事件有些事件和特定输入...

配置JAVA环境

安装jdk 地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html这就不一一赘述了...

C与JAVA二进制编码转换,补码

在C#与Java接口对接时,需要将图片转化为二进制编码传输,这时候发现c#转换出来的编码的值是0~255的范围,而java方需要的是...

JAVA学习 - JAVA语言简介

java语言简介1.了解java产生的背景2.了解java体系结构和组成3.了解Java API文档的使用4.搭建java语言的开发环境(重点)5....

JAVA学习 - JAVA语言基础

Java语言基础1.Scanner的用法2.java的程序结构3.java的数据类型4.java的运算符和表达式5.程序流程控制6.数组一 Scanner的用...

JAVA学习 - 类和对象

1.了解面向对象和面向过程的区别 2.理解什么是类以及创建类的语法 3.理解什么是对象以及如何创建 4.掌握什么是封装一 面向...
没有个性,不需要签名
排名
4
文章
473
粉丝
3
评论
2
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术