zoukankan      html  css  js  c++  java
  • 使用 lombok 简化代码

    使用前的准备

    1.Lombok 是一种 Java™ 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注解实现这一目的。

       <1>添加依赖

        在 pom.xml 文件中添加相关依赖: 

    <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.20</version>
        <scope>provided</scope>
    </dependency>

    gradle 添加依赖lombok

    1.官方推荐方式

    开发依赖:

    annotationProcessor 'org.projectlombok:lombok:1.18.2'

    compileOnly 'org.projectlombok:lombok:1.18.2'

    测试依赖:

    testAnnotationProcessor 'org.projectlombok:lombok:1.18.2'

    testCompileOnly 'org.projectlombok:lombok:1.18.2'

    2.安装插件

      IDEA中的安装: 打开IDEA的Setting –> 选择Plugins选项 –> 选择Browse repositories –> 搜索lombok –> 点击安装 –> 安装完成重启IDEA –> 安装成功

    3.修改idea配置

    Lombok有哪些注解

    @Getter and @Setter

    @FieldNameConstants
    @ToString
    @EqualsAndHashCode
    @AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor
    @Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog, @Flogger
    @Data
    @Builder
    @Singular
    @Delegate
    @Value
    @Accessors
    @Wither
    @SneakyThrows
    from Intellij 14.1 @val
    from Intellij 15.0.2 @var
    from Intellij 14.1 @var
    from Intellij 2016.2 @UtilityClass
    Lombok config system
    Code inspections
    Refactoring actions (lombok and delombok)

     使用如下:

      (1) @Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。

           

    package com.XXX
    
    import lombok.Getter;
    import lombok.Setter;
    import lombok.ToString;
    
    import javax.validation.Valid;
    import javax.validation.constraints.NotBlank;
    import javax.validation.constraints.NotNull;
    import java.io.Serializable;
    
    @Getter
    @Setter
    @ToString
    @Valid
    public class BaseStockScheduleDateQueryRequest  implements Serializable {
    
        @NotBlank(message = "货主编码不能为空")
        private String ownerCode;
        @NotNull(message = "单据类型不能为空")
        private Integer orderType;
        @NotNull(message = "业务单据类型不能为空")
        private Integer businessOrderType;
        private String remark;
        private String extendProps; //扩展字段
    
    }

    Lombok的优缺点

    优点:

    1. 能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,提高了一定的开发效率
    2. 让代码变得简洁,不用过多的去关注相应的方法
    3. 属性做修改时,也简化了维护为这些属性所生成的getter/setter方法等

    缺点:

    1. 不支持多种参数构造器的重载
    2. 虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性和完整性,降低了阅读源代码的舒适度
  • 相关阅读:
    Office办公软件停止工作解决方案
    Jquery blockUI用法
    IE浏览器对js代码的高要求
    IIS中应用程序切换物理路径遇到的问题
    using关键字
    剑指offer-面试题23-链表中环的入口节点-双指针
    剑指offer-面试题22-链表中倒数第k个节点-双指针
    剑指offer-面试题21-调整数组顺序使奇数位于偶数前面-双指针
    剑指offer-面试题20-表示数值的字符串-字符串
    剑指offer-面试题19-正则表达式匹配-字符串
  • 原文地址:https://www.cnblogs.com/jerrys/p/10532059.html
Copyright © 2011-2022 走看看