资讯专栏INFORMATION COLUMN

Lombok pojo类小神器

stackfing / 3363人阅读

摘要:可以去下载包目前最新版本为。对于某个具体的类来说,出于安全或者性能或者其它方面的考虑,可能并不希望全部成员都出现在方法的返回值里。根据中的建议,方法和方法要同时实现,并且保证一致性。

前言

Lombok主页

Lombok下载

Lombok引入项目之后,便可以使用 本文记录了在项目中应用Lombok时的使用案例,希望对朋友你有一些帮助。

可以去 下载jar包

maven:

 
 
     org.projectlombok
     lombok
     1.16.10
 

gradle:

// https://mvnrepository.com/artifact/org.projectlombok/lombok
compile group: "org.projectlombok", name: "lombok", version: "1.16.10"

目前最新版本为1.16.10。

初学Lombok的使用时,建议配合Java的编译工具,便于理解Lombok在背后做的事情。

Lombok 安装

使用 lombok 是需要安装的,如果不安装,IDE 则无法解析 lombok 注解。先在官网下载最新版本的 JAR 包。

第一次使用的时候我下载的是最新版本的,也就是我现在用的1.16.10 目前版本更新很快。

1.双击下载下来的 JAR 包安装 lombok

我选择这种方式安装的时候提示没有发现任何 IDE,所以我没安装成功,我是手动安装的。如果你想以这种方式安装,请参考官网的视频。

2.eclipse 手动安装 lombok
(1). 将 lombok.jar 复制到eclipse.ini 所在的文件夹目录下
(2). 打开 eclipse.ini,在最后面插入以下两行并保存:

-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar

(3).重启 eclipse

Lombok好处在哪里?

没使用Lombok之前,定义JavaBean时,需要为每个成员定义getter/setter方法,无论手写或者自动生成,过程都不麻烦,但当Bean里的成员蛮多时,看代码的时候就比较心烦,无关的部分越来越多。随着项目的成长,代码的行数也奇迹般的增长,以至于项目经理在评估工作量时都要考虑适时的调整比率,麻烦呀。

@Data注解

通过在在class关键字前增加@Data,Lombok除了自动生成所有非final成员的getter/setter方法外,还有额外的福利,lombok同时生成了toString、equals、hashCode方法,并且完全符合规范,这样缩减了代码的规模,也少了手写toString/equals/hashCode方法的烦恼。

    @Data
    class Person
    {
        private String name;
        private int age;
        private String job;
        private Object info;
    }
@ToString注解

在调试代码时经常遇到一个问题,查看某个变量的值时,发现变量窗口展示的是一个奇怪的值(或者说对象在JVM内部表示的地址,这其实是toString方法的默认实现);想要查看对象内部各成员的值就需要逐层展开,这样才能看到内部的信息。类似的调试过程烦不胜烦,但对于定义了合适的toString方法的类的对象,调试时查看其内部成员的值则会简单许多,调试器会自动调用对象的toString方法,并将得到的字符串展示在变量值窗口,这无疑为调试带来了莫大便利。但手写toString方法其实非常麻烦,有过相关经历的朋友可能会深有体会。对于某个具体的类来说,出于安全或者性能或者其它方面的考虑,可能并不希望全部成员都出现在toString方法的返回值里。

    @ToString(exclude = { "age", "job" }, includeFieldNames = false, doNotUseGetters = true)  
    class Staff  
    {  
        private String name;  
        private int age;  
        private String job;  
        private Object info;  
    }  
      
    @ToString(callSuper = false)  
    class Student extends Staff  
    {  
        private String schoolName;  
        private int classNo;  
    }  
@EqualsAndHashCode

在项目开发过程中,虽然场景比较少,但仍然不可避免存在需要自定义equals或者hashCode方法的时候,当然这也是头疼的时候。根据《Effective Java》中的建议,equals方法和hashCode方法要同时实现,并且保证一致性。Lombok提供的@EqualsAndHashCode完美的解决了手写equals和hashCode方法时遇到的全部问题,不需要刻意关注底层的实现细节

    @EqualsAndHashCode(exclude = { "age", "job" }, doNotUseGetters = true)  
    class Staff  
    {  
        private String name;  
        private int age;  
        private String job;  
        private Object info;  
    }  
      
    @EqualsAndHashCode(callSuper = false)  
    class Student extends Staff  
    {  
        private String schoolName;  
        private int classNo;  
    }  
@Getter和@Setter

通过这两个注解,可以灵活控制是否为字段提供getter/settere方法,以及getter/setter方法的访问权限。由于使用非常简单,以后就不用看到一大堆的get set 啰。

    class Person
    {  
        @Getter  
        @Setter  
        private String name;  
      
        @Getter  
        private String schoolName;  
      
        @Setter  
        private int classNo;  
      
        @Getter(AccessLevel.MODULE)  
        private int age;  
      
        @Getter(AccessLevel.NONE)  
        private String job;  
      
        @Getter(AccessLevel.PRIVATE)  
        private Object info;  
    }  

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/65070.html

相关文章

  • 使用神器Lombok优雅编码

    摘要:提高编码效率使代码更简洁消除冗长代码避免修改字段名字时忘记修改方法名提高下逼格以上就是的优点,当然,的优点远远不止以上几点,使用,你可以更加优雅高效的编辑代码。实战完成了上述准备之后,就可以愉快的使用进行编码了。接下来是使用简化后的代码。 Lombok介绍 近来偶遇一款撸码神器,介绍给大家~相信许多小伙伴都深有体会,POJO类中的千篇一律的getter/setter,construct...

    _ang 评论0 收藏0
  • lombok简介

    摘要:简介是开发的神器,使用注解让实体类还有日志操作特别方便。大家搜索安装即可,不然,使用会报错。注解介绍注解可以针对类的属性字段自动生成方法。注解使用建造者模式,为制定参数赋值使用起来非常的方便,满足日常的工作需要。 lombok简介 lombok是java开发的神器,使用注解让实体类pojo还有日志slf4j操作特别方便。 lombok使用方式 (1)idea中使用lombok工具,需要...

    Jiavan 评论0 收藏0
  • SpringBoot优雅编码之:Lombok加持

    摘要:概述通过提供简单的语法注解形式来帮助简化消除一些必须有但显得很臃肿的代码。作用在方法参数上的注解,用于自动生成空值参数检查自动帮我们调用方法。 showImg(https://segmentfault.com/img/remote/1460000014247343); 概述 Lombok 通过提供简单的语法注解形式来帮助简化消除一些必须有但显得很臃肿的 java 代码。典型的是对于 ...

    olle 评论0 收藏0
  • 项目中用到的树形数据

    摘要:经过分析和思考,我决定不采用递归的方式来编写树形数据的处理,最终选用来维护树节点之间的关系。以权限树为例,做一个树形数据工具类的设计。 1.简介 ​ 在一些管理系统中一般都会用到,会用到一些树形数据,例如部门组织以及权限等数据,都得生成树形数据,需要写一些树形数据生成工具,一般使用递归的方式,性能低下还可能会导致爆栈。经过分析和思考,我决定不采用递归的方式来编写树形数据的处理,最...

    douzifly 评论0 收藏0
  • 使用 lombok 简化 Java 代码

    摘要:使用可以大大减少代码行数,提高开发效率。提供了日志工具无参构造器提供方法提供方法方法有参构造器,参数按属性定义顺序传入提供了空指针检测,会抛出异常 lombok 是一个第三方工具,提供了一些注解功能,可以帮助我们消除冗余、臃肿的 Java 代码,比如 POJO 的 getter/setter 方法、构造方法、hashcode 方法等。lombok 在编译时根据注解生成具体的代码,在虚拟...

    CloudwiseAPM 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<