iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >Lombok有什么好处
  • 402
分享到

Lombok有什么好处

2023-06-16 15:06:45 402人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关Lombok有什么好处,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Lombok有什么好处?Lombok是一款非常实用Java工具,可用来帮助开发人员消除Java的冗长代码,尤

这篇文章将为大家详细讲解有关Lombok有什么好处,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Lombok有什么好处?

Lombok是一款非常实用Java工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO)。它通过注释实现这一目的。

如果大家对于Lombok比较了解的话,可以先跳过这一段,直接往后看,如果不是很熟悉的话,可以简单了解一下。

想在项目中使用Lombok,需要三个步骤:

一、IDE中安装Lombok插件

目前Lombok支持多种IDE,其中包括主流的Eclips、Intellji idea、Myeclipse等都是支持的。

在IDEA中安装方式如下:

Lombok有什么好处

二、导入相关依赖

Lombok 支持使用多重构建工具进行导入依赖,目前主要支持Maven、gardle、ant等均支持。

如使用maven导入方式如下:

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

三、代码中使用注解

Lombok精简代码的方式主要是通过注解来实现,其中常用的有@Data、@Getter/@Setter、@Builder、@NonNull等。

如使用@Data注解,即可简单的定义一个Java Bean:

import lombok.Data;  @Data  public class Menu {      private String shopId;      private String skuMenuId;      private String skuName;  }

使用@Data注解在类上,相当于同时使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor这些注解,对于POJO类十分有用。

即自动帮忙给例子中的Menu类中定义了toString、Getter、Setter等方法。

通过上面的例子,大家可以发现,我们使用@Data注解大大减少了代码量,使代码非常简洁。这也是很多开发者热衷于使用Lombok的主要原因。

另外,关于Lombok的使用,不同人有不同的看法,因为很多人都使用过Lombok,对于他的优点都比较了解,所以接下来我们重点说一下Lombok的使用会带来哪些问题。

Lombok有什么坏处?

强X队友

因为Lombok的使用要求开发者一定要在IDE中安装对应的插件。

如果未安装插件的话,使用IDE打开一个基于Lombok的项目的话会提示找不到方法等错误。导致项目编译失败。

也就是说,如果项目组中有一个人使用了Lombok,那么其他人就必须也要安装IDE插件。否则就没办法协同开发。

更重要的是,如果我们定义的一个jar包中使用了Lombok,那么就要求所有依赖这个jar包的所有应用都必须安装插件,这种侵入性是很高的。

代码可读性,可调试性低

在代码中使用了Lombok,确实可以帮忙减少很多代码,因为Lombok会帮忙自动生成很多代码。

但是这些代码是要在编译阶段才会生成的,所以在开发的过程中,其实很多代码其实是缺失的。

在代码中大量使用Lombok,就导致代码的可读性会低很多,而且也会给代码调试带来一定的问题。

比如,我们想要知道某个类中的某个属性的getter方法都被哪些类引用的话,就没那么简单了。

有坑

因为Lombok使代码开发非常简便,这就使得部分开发者对其产生过度依赖。

在使用Lombok过程中,如果对于各种注解的底层原理不理解的话,很容易产生意想不到的结果。

举一个简单的例子,我们知道,当我们使用@Data定义一个类的时候,会自动帮我们生成equals()方法 。

但是如果只使用了@Data,而不使用@EqualsAndHashCode(callSuper=true)的话,会默认是@EqualsAndHashCode(callSuper=false),这时候生成的equals()方法只会比较子类的属性,不会考虑从父类继承的属性,无论父类属性访问权限是否开放。

这就可能得到意想不到的结果。

影响升级

因为Lombok对于代码有很强的侵入性,就可能带来一个比较大的问题,那就是会影响我们对jdk的升级。

按照如今JDK的升级频率,每半年都会推出一个新的版本,但是Lombok作为一个第三方工具,并且是由开源团队维护的,那么他的迭代速度是无法保证的。

所以,如果我们需要升级到某个新版本的JDK的时候,若其中的特性在Lombok中不支持的话就会受到影响。

还有一个可能带来的问题,就是Lombok自身的升级也会受到限制。

因为一个应用可能依赖了多个jar包,而每个jar包可能又要依赖不同版本的Lombok,这就导致在应用中需要做版本仲裁,而我们知道,jar包版本仲裁是没那么容易的,而且发生问题的概率也很高。

破坏封装性

以上几个问题,我认为都是有办法可以避免的。但是有些人排斥使用Lombok还有一个重要的原因,那就是他会破坏封装性。

众所周知,Java的三大特性包括封装性、继承性和多态性。

如果我们在代码中直接使用Lombok,那么他会自动帮我们生成getter、setter  等方法,这就意味着,一个类中的所有参数都自动提供了设置和读取方法。

举个简单的例子,我们定义一个购物车类:

@Data  public class ShoppinGCart {       //商品数目     private int itemsCount;       //总价格     private double totalPrice;       //商品明细     private List items = new ArrayList<>();  }  //例子来源于《极客时间-设计模式之美》

我们知道,购物车中商品数目、商品明细以及总价格三者之前其实是有关联关系的,如果需要修改的话是要一起修改的。

但是,我们使用了Lombok的@Data注解,对于itemsCount 和 totalPrice这两个属性。虽然我们将它们定义成 private  类型,但是提供了 public 的 getter、setter 方法。

外部可以通过 setter 方法随意地修改这两个属性的值。我们可以随意调用 setter 方法,来重新设置 itemsCount、totalPrice  属性的值,这也会导致其跟 items 属性的值不一致。

面向对象封装的定义是:通过访问权限控制,隐藏内部数据,外部仅能通过类提供的有限的接口访问、修改内部数据。所以,暴露不应该暴露的 setter  方法,明显违反了面向对象的封装特性。

好的做法应该是不提供getter/setter,而是只提供一个public的addItem方法,同时去修改itemsCount、totalPrice以及items三个属性。

关于“Lombok有什么好处”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Lombok有什么好处

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Lombok有什么好处
    这篇文章将为大家详细讲解有关Lombok有什么好处,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Lombok有什么好处Lombok是一款非常实用Java工具,可用来帮助开发人员消除Java的冗长代码,尤其...
    99+
    2023-06-16
  • 什么是lambda?有什么好处
    lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式值的函数 1、lambda 函数比较轻便,即用即仍,很适合需要完成一项功能,但是此功能只在此一处使用,连名字都很随意的情况下;2、匿名函数,一般用来给 fil...
    99+
    2023-01-30
    有什么好处 lambda
  • ipv6有什么好处呢
    ipv6有什么好处?随着互联网的迅猛发展,IPv4 地址的耗尽日益临近。为了解决这一问题,IPv6应运而生。IPv6相较于IPv4具有众多的优势和好处。 1. 巨大的地址空间: IPv6采用128位的地址长度,相较IPv4的32位地址空...
    99+
    2024-01-24
    ipv6有什么好处呢 云服务器知识
  • 用Ubuntu有什么好处
    本篇内容主要讲解“用Ubuntu有什么好处”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“用Ubuntu有什么好处”吧!Q:Ubuntu是什么?A:一款基于Linux内核的开源操作系统Q:为什么要...
    99+
    2023-06-16
  • c#委托有什么好处
    委托在 c# 中提供以下好处:可重用性:分离任务实现和调用代码。解耦:避免组件直接依赖,增强代码灵活性。异步编程:用于表示异步操作,可委托长时间任务。事件处理:表示特定事件,分配处理程序...
    99+
    2024-04-04
    c#
  • python继承有什么好处
    这篇文章主要讲解了“python继承有什么好处”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python继承有什么好处”吧!说明子类获得了父类的所有功能。因为Animial实现了run()方...
    99+
    2023-06-20
  • go语言有什么好处
    go语言的好处:1、可直接编译成机器码,不依赖其他库;2、静态类型语言,但是有动态语言的感觉,写起来的效率很高;3、语言层面支持并发;4、内置runtime,支持垃圾回收;5、简单易学;6、内置了大量的库,特别是网络库非常强大;7、内置强大...
    99+
    2023-05-14
    go语言
  • css框架有什么好处
    CSS框架是一种用于快速构建和设计网页界面的工具集合。它们提供了预定义的样式和布局,使得开发人员能够更快速、更高效地创建具有一致外观和响应式设计的网页。以下是CSS框架的一些主要好处:减少开发时间:使用CSS框架可以减少从头开始编写CSS样...
    99+
    2023-10-21
    css
  • asp.net建站有什么好处
    asp.net建站的好处:界面和逻辑分离。ASP.NET是在服务器上运行的编译好的公共语言运行库代码,因此提高了性能。ASP.NET基于公共语言运行库,因此Web应用程序开发人员可以利用整个平台的威力和灵活性。ASP.NET框架补充了 Vi...
    99+
    2024-04-02
  • wordpress建站有什么好处
    wordpress建站的好处有以下几点WordPress具有非常强大的管理功能,具有发垃圾留言、搜索引擎优化、数据库等插件,网站模板丰富;另外,WordPress在网站数据备份方面也做的非常好,不需要担心数据丢失的问题。WordPress有...
    99+
    2024-04-02
  • cdn加速oss有什么好处
    cdn加速oss的好处有以下几点CDN加速OSS是常见的站点动静分离的方式,可以实现将静态资源存储在 OSS 上,并通过 CDN 加速 OSS 实现静态资源的访问加速效果。静态资源的访问将直接通过 CDN 的逻辑直接返回给客户端,而不需要占...
    99+
    2024-04-02
  • vue采用vdom有什么好处
    这篇“vue采用vdom有什么好处”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue采用vdom有什么好处”文章吧。1. ...
    99+
    2023-06-29
  • 用vue框架有什么好处
    本教程操作环境:windows7系统、vue3版,DELL G3电脑。什么是Vue.jsVue是一套用于构建用户界面的渐进式JavaScript框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层...
    99+
    2023-05-14
    javascript Vue
  • 域名解析有什么好处
    域名解析的好处有以下几点域名解析的好处主要是方便他人记忆,从而使用解析后的域名访问网站;域名解析可以对网站的DNS信息进行缓存,从而加快用户访问网站的速度;域名解析可以解决网站线路不同造成的访问速度慢的问题,用户可以根据自己的需求用户选择相...
    99+
    2024-04-02
  • 301重定向有什么好处
    301重定向的好处:帮助网站集中力量,比如使用301重定向123.com到www.123.com,此时用户和爬虫都指向www.123com,这样可以帮助后者建立权重。可以提高网站包容性,如果网站不做301重定向,会有两个完全相同的网站,有网...
    99+
    2024-04-02
  • 企业建站有什么好处
    企业建站的好处:1.宣传企业文化,树立企业形象。2.增大客户数量。3.降低宣传、广告成本。4.提高通信速度,与客户交流便捷。5.有利于寻求合资伙伴,扩大生产规模。6.发布企业采购需求,减少采购成本。"企业建站的好处:可以树立公司的...
    99+
    2024-04-02
  • 固态硬盘有什么好处
    固态硬盘的好处:采用的储存介质为闪存,启动、读取时间快,不需要寻址,能够直接读取资料。抗摔性能很强,发生碰撞时数据不会丢失。比机械硬盘小很多,重量特别轻 能节省不少空间。跟U盘一样, 依靠闪存芯片存储数据 ,不会出现噪音。功耗远远小于机械硬...
    99+
    2024-04-02
  • CDN对用户有什么好处
    1.提升用户体验网站使用cdn加速后,可以大幅度的提高网站的访问速度,从而提升用户对网站的友好度,减少网站用户的流失。实现跨区/跨域访问有些网站会因为互联不互通、区域ISP地域局限、出口带宽受限制等种种因素都造成了网站的区域性无法访问。使用...
    99+
    2024-04-02
  • cdn多节点有什么好处
    cdn多节点以下几点好处cdn多节点可以直接访问cache,提高了网站的访问速度。可以跨运营商网络加速,保证不同网络的用户得到良好的访问质量。cdn多节点能从cache服务器读取数据,减少了原服务器的负载,分担流量。cdn多节点分布广泛,能...
    99+
    2024-04-02
  • 云服务器有什么好处
    云服务器(Cloud Server)是一种云计算服务,可以通过互联网访问和使用,无需物理设备、网络连接和数据中心。它有以下好处: 可扩展性:与传统数据中心相比,云服务器具有更广泛的可用性和灵活性。可以根据需求进行扩展,以满足不断变化的需...
    99+
    2023-10-26
    有什么好处 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作