Lombok常用注解

文章目录

  • @Data
  • @Slf4j与@CustomLog
  • @Builder与@Accessors(chain = true)
  • @Getter与@Setter
  • @NoArgsConstructor与@AllArgsConstructor
  • @EqualsAndHashCode

Lombok是一个Java库,它可以通过注解的方式,帮助我们生成代码。 实际开发中大家总是会粘贴某个实体类,然后保留类上的注解改吧改吧。大多数人并不会关心这些注解到底是干嘛的,同样是打日志,@Slf4j与@CustomLog有什么不同吗?

@Data

这是一个综合注解,它相当于以下注解的总和:

  • @Getter
  • @Setter
  • @ToString
  • @EqualsAndHashCode
  • @RequiredArgsConstructor:生成一个带参构造函数,函数字段为所有final字段和@NonNull字段

@Slf4j与@CustomLog

这两个注解都是用于生成日志对象的。

  • @Slf4j 注解会为类生成一个静态的 org.slf4j.Logger 类型的成员变量。SLF4J(Simple Logging Facade for Java)是一个日志的接口层,它不直接实现日志记录的功能,而是作为一个前端或抽象层存在。这意味着在实际运行时,你可以灵活地选择具体的日志实现框架(如Logback、Log4j2等),而无需修改代码。
  • @CustomLog 是Lombok的一个特殊的特性,它允许更定制化的日志记录配置。比如需要特定命名的日志实例,或者想要直接绑定到某个特定的日志实现上

个人推荐@Slf4j,对于大多数人与大多数项目来说,它更通用,可移植性更好

@Builder与@Accessors(chain = true)

这两个都是用于简化对象创建的。@Builder的是实现Builder模式的,它会生成一个静态内部类,你可以通过构造者模式来构建对象。@Accessors是用于改变getter/setter方法的行为的,它返回的是this指针,从而实现链式调用。个人喜欢用@Builder,在《Effective Java》中关于对象的创建的建议是使用静态内部类。需要注意的是,@Builder必须在@AllArgsConstructor之前,否则@Builder会失效。

@Getter与@Setter

这两个注解用于生成字段的getter方法和setter方法。二者既可以作用在类上也可以作用在字段上,建议写在类上。一般这两个注解都会被@Data注解替代,写一个注解比写两个简单不是。

@NoArgsConstructor与@AllArgsConstructor

这两个注解都是生成构造函数。@AllArgsConstructor生成的全参的构造函数,@NoArgsConstructor生成的是无参构造函数。

@EqualsAndHashCode

这个注解用于自动生成equals和hashCode方法。 在Java中,equals方法用于比较两个对象是否相等,hashCode方法用于生成对象的哈希码。这两个方法通常需要一起被重写,以确保相等的对象具有相同的哈希码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/593672.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript的操作符运算符

前言: JavaScript的运算符与C/C一致 算数运算符: 算数运算符说明加-减*乘%除/取余 递增递减运算符: 运算符说明递增1-- 递减1 补充: 令a1,b1 运算a b ab12ab22ab--10a--b00 比较(关系)运算符: 运算…

【ChatGPT with Date】使用 ChatGPT 时显示消息时间的插件

文章目录 1. 介绍2. 使用方法2.1 安装 Tampermonkey2.2 安装脚本2.3 使用 3. 配置3.1 时间格式3.2 时间位置3.3 高级配置(1) 生命周期钩子函数(2) 示例 4. 反馈5. 未来计划6. 开源协议7. 供给开发者自定义修改脚本的文档7.1 项目组织架构7.2 定义新的 Component(1) 定义一个新的…

提示找不到msvcr110.dll怎么办,分享多种靠谱的解决方法

当用户在操作计算机时遇到系统提示“找不到msvcr110.dll,无法继续执行代码”这一错误信息,这个问题会导致软件无法启动运行。本文将介绍计算机找不到msvcr110.dll的5种详细的解决方法,帮助读者解决这个问题。 一,关于msvcr110.dll…

《十六》QT TCP协议工作原理和实战

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QTcpSocket组件实现基于TCP的网络通信…

论文| Where Is Your Place, Visual Place Recognition?

论文| Where Is Your Place, Visual Place Recognition?

1.pytorch加载收数据(B站小土堆)

数据的加载主要有两个函数: 1.dataset整体收集数据:提供一种方法去获取数据及其label,告诉我们一共有多少数据(就是自开始把要的数据和标签都收进来) 2.dataloader,后面传入模型时候,每次录入数…

某站戴师兄——Excel学习笔记

1、拿到源数据第一件事——备份工作表,隐藏 Ctrlshift键L打开筛选 UV (Unique visitor)去重 是指通过互联网访问、浏览这个网页的自然人。访问网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。一天内同个访客多次访问仅计算一个UV。 PV …

【C++】详解STL的容器之一:list

目录 简介 初识list 模型 list容器的优缺点 list的迭代器 常用接口介绍 获取迭代器 begin end empty size front back insert push_front pop_front push_back pop_back clear 源代码思路 节点设计 迭代器的设计 list的设计 begin() end() 空构造 ins…

【编程题-错题集】chika 和蜜柑(排序 / topK)

牛客对于题目链接&#xff1a;chika和蜜柑 (nowcoder.com) 一、分析题目 排序 &#xff1a;将每个橘⼦按照甜度由高到低排序&#xff0c;相同甜度的橘子按照酸度由低到高排序&#xff0c; 然后提取排序后的前 k 个橘子就好了。 二、代码 1、看题解之前AC的代码 #include <…

企业计算机服务器中了halo勒索病毒怎么处理,halo勒索病毒解密流程

随着网络技术的不断发展&#xff0c;网络在企业生产运营过程中发挥着重大作用&#xff0c;很多企业利用网络开展各项工作业务&#xff0c;网络也大大提高了企业的生产效率&#xff0c;但随之而来的网络数据安全问题成为众多企业关心的主要话题。近日&#xff0c;云天数据恢复中…

机械臂标准DH建模及正运动学分析(以IRB4600型工业机械臂为例)

1. 前言 对于工业机械臂而言&#xff0c;运动学是不考虑力学特性的情况下对机械臂的几何参数与其位置、速度、加速度等运动特性的关系研究。DH建模是运动学的基础&#xff0c;全称为Denavit-Hartenberg建模方法&#xff0c;是一种广泛应用于机器人运动学中的建模技术。该方法通…

Python爬虫:XPath解析爬取豆瓣电影Top250示例

一、示例的函数说明&#xff1a; 函数processing()&#xff1a;用于处理字符串中的空白字符&#xff0c;并拼接字符串。 主函数程序入口&#xff1a;每页显示25部影片&#xff0c;实现循环&#xff0c;共10页。通过format方法替换切换的页码的url地址。然后调用实现爬虫程序的…

Unity Animation--动画剪辑

Unity Animation--动画剪辑 动画剪辑 动画剪辑是Unity动画系统的核心元素之一。Unity支持从外部来源导入动画&#xff0c;并提供创建动画剪辑的能力使用“动画”窗口在编辑器中从头开始。 外部来源的动画 从外部来源导入的动画剪辑可能包括&#xff1a; 人形动画 运动捕捉…

[力扣]——387.字符串中的第一个唯一字符

. - 力扣&#xff08;LeetCode&#xff09; class Solution {public int firstUniqChar(String s) {int[] count new int[256];// 统计每个字符出现的次数for(int i 0; i < s.length(); i){count[s.charAt(i)];}// 找第一个只出现一次的字符for(int i 0; i < s.lengt…

几个容器网络问题实战解析

容器云平台和容器网络紧密结合&#xff0c;共同构建了容器化应用程序的网络基础设施&#xff0c;实现了容器之间的通信、隔离和安全性。文中容器云平台采用的容器网络组件是calico&#xff0c;这个是业界普遍采用的一种方案&#xff0c;性能及安全性在同类产品中都是比较好的。…

linux下载安装JDK

查看系统是否自带 jdk java -version 一、jdk下载安装 jdk11下载 上传到 linux 以下说明已下载 解压 tar -xzvf jdk-11.0.23_linux-x64_bin.tar.gz 查看是否安装成功 二、linux配置JDK环境 sudo vim /etc/profile JAVA_HOME/may2024/jdk-11.0.23 JRE_HOME$JAVA_HOME/…

苍穹外卖项目

Day01 收获 补习git Git学习之路-CSDN博客 nginx 作用&#xff1a;反向代理和负载均衡 swagger Swagger 与 Yapi Swagger&#xff1a; 可以自动的帮助开发人员生成接口文档&#xff0c;并对接口进行测试。 项目接口文档网址&#xff1a; ​​​​​​​http://localhost:808…

LLVM Instruction Selection 笔记

Instruction Selection 所处阶段 注&#xff1a;上图来源于 Welcome to the back-end: The LLVM machine representation 可以看到 SelectionDAG 架在 LLVM IR 和 LLVM MIR 之间&#xff0c;在此之前 machine independent optimization 已经完成。之后基本上就进入了 machine …

车载诊断技术 --- Service 22读取DID怎么会导致ECU不在线

车载诊断技术 — Service 22读取DID怎么会导致ECU不在线 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非…

Spring Cloud学习笔记(Hystrix):基本知识和代码示例

这是本人学习的总结&#xff0c;主要学习资料如下 - 马士兵教育 1、Hystrix简介2、Hystrix架构2.1、Hytrix的入口2.2、toObservable()流程 3、Hsytrix的简单样例3.1、dependency3.2、代码样例 1、Hystrix简介 Hytrix是用于处理处理延迟和容错的开源库&#xff0c;包含服务隔离…
最新文章