• Lombok插件IDEA安装


    1、什么lombok

    官网:https://projectlombok.org/

    一个优秀的Java代码库,简化了Java的编码,为Java代码的精简提供了一种方式

    主要解决简化JavaBean中getter,setter,equals,hashCode和toString的等等编程书写

    lombok消除Java的冗长代码,尤其是对于简单的Java对象,只要加上注解就行

    lombok原理:

    在JSR规范标准基础上,lombok根据自己编写的注解处理器,动态修改 AST节点(lombok自定义注解所生成的代码),

    通过编译最终生成JVM可执行class字节编码。

    JSR: 是Java Specification Requests的缩写,意思是Java 规范提案

    2、使用方式

    项目添加依赖进行版本管理:

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

    <!--scope=provided,说明它只在编译阶段生效,不需要打入包中, Lombok在编译期将带Lombok注解的Java文件正确编译为完整的Class文件-->

    添加IDE工具对Lombok的支持:

    点击File-- Settings设置界面,安装Lombok插件,然后重启idea

     IDEA里需要在设置中启用annotation processors,记得重启IDEA!!!!

     3、基于项目的实体类测试 

    常见注解@Getter/@Setter:

    作用类上,生成所有成员变量的getter/setter方法

    作用于成员变量上,生成该成员变量的getter/setter方法

    演示代码:

    /**
     * 生产对象属性的所有get/set方法
     */
    @Setter
    @Getter
    public class UserDO{
        /**
         * 不想生成 get方法
         */
        @Getter(AccessLevel.NONE)
        private int age;
    
        /**
         * 控制访问权限
         */
        @Getter(AccessLevel.PROTECTED)
        private int salary;
    
        /**
         * final 只会生成get
         */
        private final String name="boat";
    
        /**
         * 下面两个静态成员变量不会生成set/get方法
         */
        static Date createTime = new Date();
    
        private static final String address = "贵州省贵阳市";
    }

     4、Lombok非空判断和构造函数注解

    @NonNull 注解:

    作用于方法上或者属性,用于非空判断,如果为空则抛异常

    public void test(@NonNull String name){
    System.out.println(name);
    }

    查看作用效果

     @NoArgsConstructor:

    生成无参构造器

    @AllArgsConstructor:

    生成全参构造器

    /**
     * 生成全参构造器
     */
    @AllArgsConstructor
    public class User {
    
        private Integer age;
        private int salary;
    
    }

    查看作用效果

     @RequiredArgsConstructor:

    指定参数的构造函数,有以下特征的字段

    @RequiredArgsConstructor
    public class User {
    
        private Integer age;
        private int salary;
    
        @NonNull
        private String address;
    
    }

    查看作用效果

     

     

     

     

     

  • 相关阅读:
    环形链表II 找环入口
    最短无序连续子数组 复制数组排序后与原数组相比
    和为K的子数组 暴力 或 hash+前缀
    在排序数组中查找元素的第一个和最后一个位置 二分法+递归
    NodeJs 批量重命名文件,并保存到指定目录
    NodeJs 批量图片瘦身,重设尺寸和图片质量并保存到指定目录
    NodeJs 获取照片拍摄日期和视频拍摄日期,并按日期目录存档
    Oracle迁移记录
    Oracle数据库迁移前的准备工作(创建用户并且分配权限及表空间)
    Oracle 11g R2性能优化 10046 event【转载】
  • 原文地址:https://www.cnblogs.com/M87-A/p/15334801.html
Copyright © 2020-2023  润新知