返回顶部
首页 > 资讯 > 精选 >如何解决Lombok注解不起作用的问题
  • 554
分享到

如何解决Lombok注解不起作用的问题

2023-06-20 19:06:01 554人浏览 泡泡鱼
摘要

本篇内容介绍了“如何解决Lombok注解不起作用的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Lombok注解不起作用场景:减少实体类

本篇内容介绍了“如何解决Lombok注解不起作用的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Lombok注解不起作用

场景:

减少实体类中如Getter,Setter方法的书写

原因:

lombok是一个第三方插件,我们使用时需要进行两个步骤(两个步骤缺一不可):

引入lombok依赖

安装lombok插件

作用:

Lombok是一个第三方插件,通过它我们可以直接书写注解来代替原来的getter,setter,toString等方法。

深入理解Lombok

说道Lombok,可能会鲜为人知。但是在实际的开发中,它起到了很大的作用,话不多说,直入正题:

一、Lombok是什么

现在看一下Lombok官方对其进行的解释:Lombok官网:https://projectlombok.org

如何解决Lombok注解不起作用的问题

第一句话,Lombok项目是一种自动接通你的编辑器和构建工具的一个Java库。接着,不用再一次写额外的getter或者equals方法。翻译到这里其实就可以,后面是对Lombok早期应用的介绍。通过这两句话不难理解lombok其实就是帮助我们编写getter或者equals方法的一个“工具”。其实他的魅力并不在于帮助我们简单的编写对应的getter或者更多的方法,还有一点在于,当我们的字段发生改变时,lombok也会对相应的getter方法进行改变。

二、为什么要在自己的项目中使用Lombok

要回答这个问题,仅仅知道什么是Lombok是不够的。在讲解原理之前我想再提一点 ,这也是为什么要使用Lombok的关键所在:根据Lombok的使用规则,如果想要使用Lombok就需要删除在项目中(JavaBean)存在的已经生成的getter方法setter方法以及equals和hash方法,当然Lombok也提供了对打印日志的处理。这样在使用Lombok以后就会大大减少项目中的代码量,同时由于Lombok有自动修改的功能,这也提供了项目中代码的执行效率。

综上所述,使用Lombok的两点主要原因就是:

(1)、简化冗余的JavaBean代码;

(2)、大大提高JavaBean中方法的执行效率;

三、如何使用LomBok

在Lombok的官网中,有一个install选项,我们点开它会看到多种安装方式:

如何解决Lombok注解不起作用的问题

大家可以根据自己的项目需求来选择使用哪种方式,这里以Maven为例:

点击Maven会看到一组坐标:

如何解决Lombok注解不起作用的问题

根据它的提示我们将这一组坐标添加到我们的pom文件中:

如何解决Lombok注解不起作用的问题

添加进去以后点击import change,等待ideajar包下载完就可以在项目中使用了。

四、Lombok实现原理

Lombok实现了jsR 269 api规范,javac在Java6开始支持这一规范,只要程序实现了该API,就能在javac运行的时候得到调用,那么Lombok在编译时使用的就是javac,具体流程如下:

如何解决Lombok注解不起作用的问题

首先是项目的源代码文件,在经过编译处理以后,lombok会使用自己的抽象语法树去进行注解的匹配,如果在项目中的某一个类中使用了lombok中的注解,那么注解编译器就会自动去匹配项目中的注解对应到在lombok语法树中的注解文件,并经过自动编译匹配来生成对应类中的getter或者setter方法,达到简化代码的目的。执行顺序就如上图的叠放顺序。

五、Lombok注解详解

Lombok主要常用的注解有:

@Data,@getter,@setter,@NoArgsConstructor,@AllArgsConstructor,@ToString,@EqualsAndHashCode,@Slf4j,@Log4j。我们一个一个来看:

  • @Data注解:在JavaBean或类JavaBean中使用,这个注解包含范围最广,它包含getter、setter、NoArgsConstructor注解,即当使用当前注解时,会自动生成包含的所有方法;

  • @getter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的getter方法;

  • @setter注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的setter方法;

  • @NoArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的无参构造方法;

  • @AllArgsConstructor注解:在JavaBean或类JavaBean中使用,使用此注解会生成对应的有参构造方法;

  • @ToString注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的toStirng方法;

  • @EqualsAndHashCode注解:在JavaBean或类JavaBean中使用,使用此注解会自动重写对应的equals方法和hashCode方法;

  • @Slf4j:在需要打印日志的类中使用,当项目中使用了slf4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;

  • @Log4j:在需要打印日志的类中使用,当项目中使用了log4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;

在使用以上注解需要处理参数时,处理方法如下(以@ToString注解为例,其他注解同@ToString注解):

@ToString(exclude="column")

意义:排除column列所对应的元素,即在生成toString方法时不包含column参数;

@ToString(exclude={"column1","column2"})

意义:排除多个column列所对应的元素,其中间用英文状态下的逗号进行分割,即在生成toString方法时不包含多个column参数;

@ToString(of="column")

意义:只生成包含column列所对应的元素的参数的toString方法,即在生成toString方法时只包含column参数;;

@ToString(of={"column1","column2"})

意义:只生成包含多个column列所对应的元素的参数的toString方法,其中间用英文状态下的逗号进行分割,即在生成toString方法时只包含多个column参数;

六、使用Lombok可能需要注意的地方

(1)、当你的IDE是Idea时,要注意你的Idea是支持Lombok的,如果不支持请更换2017版本尝试。

(2)、在使用Lombok时,你的编辑器可能会报错,这时请在你的IDE中安装Lombok插件(如果使用的Idea则直接搜索Lombok插件,选择星级最高的,直接安装就是,其他Ide类同)。

(3)、参数的处理往往都是根据项目需求来进行,请妥善处理参数。

(4)、如果你无法访问Lombok官网,你可以从这篇博文中将Maven坐标照着自己打进去,或者你也可以访问Maven的中央仓库搜索Lombok,将Maven坐标复制进去即可。

“如何解决Lombok注解不起作用的问题”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 如何解决Lombok注解不起作用的问题

本文链接: https://lsjlt.com/news/299453.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何解决Lombok注解不起作用的问题
    本篇内容介绍了“如何解决Lombok注解不起作用的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Lombok注解不起作用场景:减少实体类...
    99+
    2023-06-20
  • 解决Lombok注解不起作用的问题
    Lombok注解不起作用 场景: 减少实体类中如Getter,Setter方法的书写 原因: lombok是一个第三方插件,我们使用时需要进行两个步骤(两个步骤缺一不可): 1:引入...
    99+
    2024-04-02
  • lombok注解不起作用如何解决
    如果Lombok注解不起作用,可能有以下几种解决方法: 确认是否安装了Lombok插件:在使用Lombok注解之前,确保已经安装...
    99+
    2023-10-28
    lombok
  • 如何解决SpringBoot Shiro权限注解不起作用的问题
    本篇内容主要讲解“如何解决SpringBoot Shiro权限注解不起作用的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决SpringBoot Shiro权限注解不起作用的问题”吧!...
    99+
    2023-06-20
  • 如何解决php header不起作用的问题
    本篇内容介绍了“如何解决php header不起作用的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php header不起作用的方法:...
    99+
    2023-06-20
  • async注解不起作用如何解决
    如果使用的是Python 3.7及以上版本,需要确保使用的函数是异步函数,即使用了`async def`关键字定义的函数。另外,需要...
    99+
    2023-09-16
    async
  • 解决spring.thymeleaf.cache=false不起作用的问题
    目录spring.thymeleaf.cache=false不起作用thymeleaf缓存关闭spring.thymeleaf.cache=false不起作用 配置是清除缓存,实现热...
    99+
    2024-04-02
  • 解决@JsonInclude(JsonInclude.Include.NON_NULL)不起作用问题
    目录@JsonInclude(JsonInclude.Include.NON_NULL)不起作用原因@JsonInclude(JsonInclude.Include.NON_NULL...
    99+
    2024-04-02
  • 如何解决 PHP mb_substr 函数不起作用的问题
    解决 PHP mb_substr 函数不起作用的问题 在 PHP 开发中,我们经常会使用 mb_substr 函数来对字符串进行截取操作,尤其是在处理中文字符串时更为常见。然而,有时候...
    99+
    2024-04-02
  • 如何解决升级IDEA后Lombok不能使用的问题
    本篇内容介绍了“如何解决升级IDEA后Lombok不能使用的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!今天到工作室比较晚,在电脑前吃...
    99+
    2023-06-20
  • 我如何解决 go build 和 go install 不起作用的问题
    对于一个Golang开发者来说,牢固扎实的基础是十分重要的,编程网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《我如何解决 go build 和 go install 不起作用的问题》,...
    99+
    2024-04-04
  • 如何解决Java中Lombok @Value注解导致的variable not been initialized问题
    本篇内容介绍了“如何解决Java中Lombok @Value注解导致的variable not been initialized问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情...
    99+
    2023-06-20
  • @JsonInclude(JsonInclude.Include.NON_NULL)不起作用如何解决
    这篇“@JsonInclude(JsonInclude.Include.NON_NULL)不起作用如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收...
    99+
    2023-07-02
  • jquery .val()不起作用如何解决
    本篇内容介绍了“jquery .val()不起作用如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!jquery .val()不起作用的...
    99+
    2023-07-04
  • Vue.config.productionTip=false不起作用如何解决
    本篇内容主要讲解“Vue.config.productionTip=false不起作用如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue.config.productionTip=fa...
    99+
    2023-07-04
  • vue设置代理不起作用问题及解决
    目录vue设置代理不起作用运行后发现报错404vue配置代理方式正向代理配置环境变量配置文件目录vue设置代理不起作用 使用vue写前端界面时,需调用后端接口展现查询的数据,于是设置...
    99+
    2024-04-02
  • SpringBoot Shiro 权限注解不起作用的解决方法
    目录问题如下:解决方法如下:最近在学习springboot结合shiro做权限管理时碰到一个问题。 问题如下: 我在userRealm中的doGetAuthorizationInfo...
    99+
    2024-04-02
  • @Transactional注解不起作用的原因分析及解决
    目录Transactional失效场景介绍第一种第二种第三种@Transactional注解不起作用原理分析第一种不创建代理对象不进行代理调用第二种第三种Transactional失...
    99+
    2024-04-02
  • php7改php.ini不起作用如何解决
    本篇内容主要讲解“php7改php.ini不起作用如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php7改php.ini不起作用如何解决”吧!php7改php.ini不起作用的解决办法:...
    99+
    2023-07-04
  • 如何解决React.memo引起的bug问题
    这篇文章主要介绍如何解决React.memo引起的bug问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!与PureComponent不同的是PureComponent只是进行浅对比props来决定是否跳过更新数据这...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作