我的编程空间,编程开发者的网络收藏夹
学习永远不晚

为什么宁可用Lombok也不把成员设置为public

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

为什么宁可用Lombok也不把成员设置为public

这篇“为什么宁可用Lombok也不把成员设置为public”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“为什么宁可用Lombok也不把成员设置为public”文章吧。

    下面系统的分析一下,why?

    采用get/set方法其实是Java的一个协议,在1996年12月提出的java bean1.00-A,通过统一的规范可以设置对象的值(比如get、set方法)。很多框架也是在此基础上开发的,底层源码也都是通过get/set访问属性的。

    很多时候,可以通过get/set方法,① 增加一些功能;② 增加一些特定的修改,比如打折;③ 增加一些访问逻辑;④ 还可以通过set方法触发一些事件。

    如果你将一个属性定义为public了,而且在50处调用了,此时,产品经理来了一个需求,将此次的促销商品打五折;难道你要去修改这50处的代码吗?如果你用get/set封装了,修改对应属性的set方法即可,so easy~!

    就像上面所说,大家都这么写,我也这么写,但是,对于大多数企业应用来说,直接将属性写成public,也是没毛病。

    也可以理解为,“风格统一的代码更好维护”。

    假如我新接手一个项目,要用到某个bean,我也不知道都有什么属性,一般的做法都是先new一个,然后通过小数点联想出来,如果没有get/set,那真的很烦躁。

    现在都是面向接口编程,而Java接口中是不能定义普通的属性的,但可以定义get/set方法。

    为什么宁可用Lombok也不把成员设置为public

    为什么宁可用Lombok也不把成员设置为public

    来,一起回味一下封装的概念。

    封装是指一个对象对其他对象隐藏其部分状态和行为,而仅向程序其他部分暴露有限的接口的能力。封装也叫作信息隐藏或者数据访问保护。类通过暴露有限的访问接口,授权外部仅能通过类提供的方式(或者叫函数)来访问内部信息或者数据。对于封装这个特性,我们需要编程语言本身提供一定的语法机制来支持。这个语法机制就是访问权限控制。

    Lombok应运而生

    为了解决get/set的代码臃肿问题,Lombok应运而生。简单无脑,解决一切烦恼。

    使用 Lombok 可以让代码更加简洁,减少冗余的代码量。使用 Lombok 时,可以使用注解来生成常用的代码,如 getter、setter、equals、hashCode 和 toString 方法,这些方法通常都是在 Java 类中需要手动编写的。 使用 Lombok 可以省去这些手动编写的步骤,使代码更加简洁。此外,使用 Lombok 还有一个好处是可以使用注解来生成构造函数和静态构造函数,这些构造函数可以接受所有属性作为参数。这样就可以避免手动编写很多构造函数的情况。因此,使用 Lombok 可以让代码更加简洁,减少冗余的代码量,提高代码的可读性和可维护性。

    Lombok代替public,因为public成员的可见性太大。将成员定义为public意味着任何地方都可以访问这个成员,这可能会导致成员被意外地修改,从而影响类的稳定性和正确性。而使用Lombok可以通过自动生成getter和setter方法来保护成员的可见性,从而提高类的封装性和可维护性。此外,使用Lombok还可以帮助开发人员减少编写重复的代码,提升工作效率。

    因此,为了保护成员的可见性并提升代码的可维护性,许多人宁可使用Lombok,也不愿意将类的成员设为public。

    不和谐的声音,禁止使用Lombok?

    1、jdk版本问题

    目前国内大多数Java项目,采用的都是JDK1.8,因为它够稳定,功能也完全够用,但是,如果哪一天,你的客户心血来潮,就是想用JDK11,甚至JDK17,此时,你会发现Lombok不好用了,于是,不得不将好几百个实体类,通过idea生成get/set、equals、toString等方法,很烦躁。

    2、开始营业

    当你的客户获取到你的源代码之后,他也想看看,运行一下,此时发现没安装Lombok,报错了,安装Lombok,不了解这是什么,还要去百度学习一下,被 迫营业,很烦躁。

    3、可读性差

    • Lombok隐藏了JavaBean的封装细节;

    • toString()不知道会打印什么;

    • @AllArgsConstructor提供一个全量构造器, 让外界在初始化时,可以随意修改其属性,极其不安全。如果属性过多,这个全量构造器,看起来,很鸡肋;

    • 参数的顺序我们也无法控制,都是按照Lombok的心情来的;

    4、使用Lombok,写代码的时候很爽,但它

    • 污染了你的代码;

    • 玷污了Java语言的纯粹;

    • 破坏了Java代码的完整性、可读性、安全性;

    • 增加了代码的耦合度;

    • 增加了代码的调试难度;

    这是一种弊大于利、得不偿失的操作。

    以上就是关于“为什么宁可用Lombok也不把成员设置为public”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    为什么宁可用Lombok也不把成员设置为public

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

    下载Word文档

    猜你喜欢

    为什么宁可用Lombok也不把成员设置为public

    这篇“为什么宁可用Lombok也不把成员设置为public”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“为什么宁可用Lomb
    2023-07-05

    宁可用Lombok也不把成员设置为public原理解析

    这篇文章主要为大家介绍了宁可用Lombok也不把成员设置为public原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-06

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录