Lombok分析

 Lombok作为Java的库受到广大程序员的亲睐,只需要一个@Data注解就省去了大篇幅的getter/setter代码,使得代码看上去特别简洁。但是它却是一把双刃剑,将从

以下方面简单介绍:

1.JDK版本问题

   将现有项目的JDK从Java 8升级到Java 11时,Lombok不能正常工作了。不得不将所有的Lombok注解从项目源代码中清除,并使用IDE自带的功能生成

   getter/setter,equals,hashCode,toString以及构造器等方法,会消耗你很多的时间。
  1. 强制使用,增加耦合度

    当你的源代码中使用了Lombok,如果你的代码又被其他的人使用,这时依赖你代码的人必须要安装Lombok插件,如果不这么做,代码将无法正常运行;
    
    使用Lombok编写某一个模块的代码后,其余依赖此模块的代码都需要引入Lombok依赖,同时还需要在IDE中安装Lombok的插件。虽然Lombok的依赖包并不大,但就
    
    因为其中一个地方使用了Lombok,其余所有的依赖方都要强制加入Lombok的Jar包,这是一种入侵式的耦合。
    
  2. 可读性差

    Lombok隐藏了JavaBean封装的细节,如果使用@AllArgsConstructor注解,它将提供一个巨型构造器,让外界有机会在初始化对象时修改类中所有的属性。
    
    首先,这是极其不安全的,因为类中的一些属性我们是不希望被修改的;
    
    然后,如果某个类中有几十个属性存在,就会有一个包含几十个参数的构造器被Lombok注入到类中,这是不可取的;
    
    同时,构造器参数的顺序完全由Lombok所控制,我们并不能操控;
    
    最后,在运行代码之前,我们无法查看JavaBean的方法。
    

参考 :石杉的架构笔记

posted @ 2020-11-06 11:03  A焕然一新  阅读(125)  评论(0)    收藏  举报