【Lombok学习】

Java学习——Lombok Lombok与JDK版本不兼容问题解析:当Lombok注解处理器无法适配新JDK内部API变化时,会出现"NoSuchFieldError"错误。关键问题在于Lombok访问的JDK编译器内部类JCTree$JCImport结构已变更,导致字段缺失。解决方案包括升级Lombok至适配最新JDK的版本(如1.18.30+)、检查IDE插件兼容性,或降级JDK版本。该问题常见于使用JDK17+时,需确保Lombok与开发环境版本匹配。 阅读详情

Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。

添加依赖

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<version>1.18.4</version>
	<scope>provided</scope>
</dependency>

@Data

代替 get、set、equals、hashCode、canEqual、toString方法

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
    private String name;
    private String address;
    private Integer age;
    private String hobbit;
    private String phone;
}

@AllArgsConstructor和NoArgsConstructor

提供类的全参和无参构造

@Slf4j
@Configuration
@AllArgsConstructor
public class RouterFunctionConfiguration {
    private final HystrixFallbackHandler hystrixFallbackHandler;
    private final ImageCodeHandler imageCodeHandler;
    
}

// 替代如下代码

@Slf4j
@Configuration
public class RouterFunctionConfiguration {
    @Autowired
    private  HystrixFallbackHandler hystrixFallbackHandler;
    @Autowired
    private  ImageCodeHandler imageCodeHandler;
}

@SneakyThrows

@SneakyThrows注解是由lombok为我们封装的,它可以为我们的代码生成一个try…catch块,并把异常向上抛出来,而你之前的ex.getStackTrace()是没有这种能力的,有时,我们从底层抛出的异常需要被上层统一收集,而又不想在底层new出一大堆业务相关的异常实例,这时使用@SneakyThrows可以简化我们的代码。

@SneakyThrows
private void checkCode(ServerHttpRequest request) {
    String code = request.getQueryParams().getFirst("code");
    
    if (StrUtil.isBlank(code)) {
        throw new ValidateCodeException("验证码不能为空");
    }
    
    redisTemplate.delete(key);
}
// 替代如下代码
private void checkCode(ServerHttpRequest request) throws ValidateCodeException {
    String code = request.getQueryParams().getFirst("code");
    
    if (StrUtil.isBlank(code)) {
        throw new ValidateCodeException("验证码不能为空");
    }
}

@Log4j/@Slf4j

@Slf4j是提供日志输出,可使用log,添加了该注释之后,就可以在代码中直接饮用log.info( ) 打印日志了

@Cleanup

清理流对象,不需要手动关闭

@Cleanup
OutputStream outStream = new FileOutputStream(new File("text.txt"));


@Cleanup
InputStream inStream = new FileInputStream(new File("text2.txt"));
byte[] b = new byte[65536];
while (true) {
    int r = inStream.read(b);
    if (r == -1) break;
    outStream.write(b, 0, r); 
}
汽水音乐自动化薅羊毛教程:从零搭建稳定赚钱脚本 📖 前言:为什么要学习自动化脚本?在数字时代,时间就是金钱。汽水音乐等App通过观看广告奖励用户金币的模式,本质上是将我们的时间转化为收益。本教程将教你如何用Python自动化这个过程,让程序为你"打工",实现被动收入。通过本教程,你将学到:移动端自动化测试的核心技术Python在自动化领域的实际应用如何将重复性任务转化为自动化流程创造属于自己的"数字员工"第一章:环境准备与基础配置1.1 硬件要求Android手机一部(建议使用备用机)USB数据线。 阅读详情

相关推荐

去面试游戏测试工程师,面试官看着我的简历呆住了

!我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

MXB1220的博客 7330

lombok学习总结

测试lombok学习总结

u013498015的博客 216

常见的电容有哪些

电容在电路板中非常常见,类别纷繁复杂,本文化繁为简,主要介绍下常见电容。

qq_40170041的博客 768

lombok 学习

参考

qq_33291307的博客 185

在Docker中集成GPU监控体系

先上效果图 等文档整理出来再更

tamako0v0的博客 2471

Unity 面试篇|(六)数据结构和算法篇 【全面总结 | 持续更新】

先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样遍历完后,堆中的10000个数就是所需的最大的10000个。桶排序是计数排序的升级版。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。这样处理就可以分别在每个文件的10^6个数据中找出最大的10000个数,合并到一起在再找出1000*10000中的最终的结果。

游戏开发小Y的博客 12万+

通过Lombok学习如何写好hashCode和equals方法

平时开发过程中,有时需要重写javaBean的hashCode和equals方法,但是一时间却不知道如何编写,百度上一搜索各种写法,总感觉没一个是标准写法。还好,Lombok的@Data会自动给JavaBean填充hashCode和equals方法,可以通过反编译出来,学习下Lombok如何重写hashCode和equals方法的。 import lombok.Data; import java...

sunct的博客 6970

符合DO-178C和DO-331的机载软件研制体系

DO-178C的核心要求软件开发生命周期:DO-178C定义了软件开发的生命周期过程,包括需求获取、设计、实现、验证和确认等。它为机载软件开发提供了一套系统化的指导,确保在开发过程中考虑安全性和可靠性。安全等级(DAL):根据系统的重要性,DO-178C将软件划分为不同的开发保障等级(DAL A到E),DAL A的要求最为严格,适用于关键安全功能,而DAL E的要求较低,适用于非关键功能。DO-178C在非基于模型软件开发中的应用。

qq_41854911的博客 980

Lombok相关注解学习

Lombok相关注解学习用法总结记录。

qq_58437194的博客 1758

vue3+vite - 解决报错error while updating dependencies:Error:EACCES:permission denied,mkdir ‘x‘(系统权限问题)

vue3,vite,报错,nuxt,权限,苹果mac系统,windows系统,vue3报错,vite报错,node,详细解决方法,教程,[vite] error while updating dependencies: Error:EACCES:permission denied,mkdir 'x',更新依赖项时发生[vite]错误:错误:EACCES:权限被拒绝,mkdir,苹果mac系统加了sudo还是不行报错,运行报错,启动项目,run dev,创建项目,初始化,依旧不行怎么办,保权限没有问题,换了n

✅ 精选推荐文章 5556

关于海康MVS软件显示速率低与1GB、相机丢包的设置优化

工控机主要应用与视觉检测!相机网线及工控机网口都是千兆的!设置完巨帧数和速度与双工(选择为全双工),显示速度低与1GB,不能够正常工作。C.LA-Properdes-Advanced-将RecerveBuffers更改为2048。E.LAN-属性-电源管理-取消选中允许计算机关闭此设备以保存电源。这种情况均为MVS设置不熟悉,可参照如下设置优化相应端口相机配置。D.局域网-属性-高级-将传输缓冲区更改为20484。B.LAN-属性-高级-将中断记录部分更改为执行。A.关闭采集控制帧速率控制。

米可的博客! 8827

Lombok的学习

Lombok的学习 此教程基于黑马程序员Java品达通用权限项目,哔哩哔哩链接:https://www.bilibili.com/video/BV1tw411f79E?p=21 1.Lombok介绍 lombok是一个开源的代码生成库,能以简单的注解形式来简化Java类中的大量样板代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,

qq_461491877的博客 264

华为OD机考双机位C卷 - 虚拟理财游戏(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 虚拟理财游戏(OD上机考试双机位C卷)。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 668

学习Lombok插件

Lombok是一个简化Java代码编写的工具库,通过注解自动生成getter/setter、构造方法等样板代码,减少重复劳动。核心功能包括@Getter/@Setter、@ToString、@Data等注解,可应用于字段或类级别。使用需引入依赖并配置IDE插件,能显著提升开发效率,但过度依赖可能影响代码可维护性。文章详细介绍了Lombok的引入方式、使用方法及@Target元注解的作用,并举例说明了@Getter/@Setter的生成规则和访问级别控制。注意需配置编译参数以避免注解处理错误。

m0_74154295的博客 1523

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

lombok 构造函数_一份不可多得的 Lombok 学习指南

本文作者:semlinker本文地址:segmentfault.com/a/1190000020864572松哥注:对于 Lombok 这样的工具,爱它的人觉得这简直就是 Java 猿的救星,讨厌它的的人会觉得这是什么垃圾?今天我们不讨论该不该用这个东西,我们仅仅从技术角度来探讨一下它的用法。一、Lombok 简介Lombok 是一款 Java 开发插件,使得 Java 开发者可以通过其...

weixin_35547906的博客 1460

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

学习笔记2(Lombok+算法)

在 Java 编译过程中,注解处理器会在编译期扫描代码中的注解,并根据注解的定义生成相应的 Java 代码。@Data是一个综合性的注解,它包含了@Getter、@Setter、@ToString、@EqualsAndHashCode和@RequiredArgsConstructor的功能。Lombok 是一个在 Java 开发中广泛使用的开源库,它的主要作用是通过注解的方式,减少 Java 代码中大量的样板代码(如 getter、setter、构造函数等),从而让代码更加简洁、易读和易于维护。

2401_84910613的博客 1058

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

lombok 学习总结

参考文章 Lombok的基本使用 https://www.jianshu.com/p/2543c71a8e45 Lombok 函数 https://mp.weixin.qq.com/s/Ys6ksYasfUj7TSCGICHM8w 以上两篇文章学习lombok 足够用了 lombok 以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString;异常处理;I/O流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok应运而生。 作者:忞触动心灵

狗剩的专栏 196

import lombok 报错_lombok学习一:通过lombok解决idea mapper报错问题

首先lombok是一款大幅度减少代码的插件学习文档地址如下https://www.projectlombok.org/featuresvalvalexample=newArrayList();example.add("Hello,World!");valfoo=example.get(0);与java如下代码相等finalArrayListexample=newArrayList(...

weixin_32133403的博客 535

lombok学习

Slf4j 注解在类,生成log变量,严格意义来说是常量。,简化书写,省去实体类中大量的get()、 set()、 toString()、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法等方法。@RequiredArgsConstructor 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。@NoArgsConstructor 注解在类,生成无参的构造方法。...

qq_45947664的博客 421

Lombok学习总结

Lombok学习总结Lombok介绍及优点什么是lomboklombok的优点Lombok原理Lombok引入项目IDEA/Eclipse安装 Lombok插件IDEAEclipseLombok在项目中的使用反编译验证Lombok生成的代码 Lombok介绍及优点 什么是lombok Lombok(lombok官网)项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维

积跬步,至千里。 612

Lombok 学习

一、Lombok 简介 Lombok 是一款 Java 开发插件,使得 Java 开发者可以通过其定义的一些注解来消除业务工程中冗长和繁琐的代码,尤其对于简单的 Java 模型对象(POJO)。在开发环境中使用 Lombok 插件后,Java 开发人员可以节省出重复构建,诸如 hashCode 和 equals 这样的方法以及各种业务对象模型的 accessor 和 toString 等方法的大...

猿上生活 578

Lombok的学习理解

在项目中初次接触到Lombok,看到很多注解都是Lombok中的,可以说即强大又省事,顿时就很好奇,遂有了这篇关于Lombok的文章。 一、什么是Lombok? 首先贴上Lombok的官网:https://projectlombok.org/。   Lombok项目是一个Java库,它会自动插入您的编辑器和构建工具中,从而使您的Java更加生动有趣。永远不要再写另一个getter或equals方法,带有一个注释的您的类有一个功能全面的生成器,自动化您的日志记录变量等等。 二、为什么要使用Lombok? (1

qq_16268979的博客 188

lombok的学习和使用

Lombok是一个Java库,它通过注解的方式自动生成getter、setter、equals、hashCode、toString等常用方法,从而减少开发人员的重复劳动。

m0_63550220的博客 1158

LomBok的学习使用

最近在研究使用idea的插件,了解了一下LomBok,不用生成Getter与Setter方法,是不是很方便呢,接下来还有更方便的 使用场景 在domain中需要根据实体类生成getter与setter方法,我们不想生成,使用注解代替,就要使用到LomBok 通俗的工作原理 在写Java程序的时候经常会遇到如下情形:新建了一个Class类,然后在其中设置了几个字段,最后还需要花费很多时间来建立ge...

无名 287

Java学习路线:Lombok(三)Lombok实用注解2

这是因为,之前讲解EqualsAndHashCode的时候说过,重写的equals方法会忽略父类之间的比较,但是,EqualsAndHashCode可以通过设置callSuper来解决这个问题,@Data却无法解决。当存在final类型的变量时,如果时无参构造且没有初始化,代码会报错。但是,当存在final类型的变量时,RequiredArgsConstructor会自动创建一个包含该变量的有参构造。一般来说,重写了equals方法后,会只比较当前类的属性,而不去比较父类的属性,因此推荐将。

LUwantAC的博客 822
上一篇: 当IDE中项目的JDK版本不断变化怎么办?
下一篇: 【Vue3 配合高德地图实现精准定位并获取定位信息】
Timy_bai
博客等级 码龄7年 201粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Timy_bai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值