zoukankan      html  css  js  c++  java
  • 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;
    
    }

    查看作用效果

     

     

     

     

     

  • 相关阅读:
    J2EE学习笔记:Filter
    J2EE学习笔记:HTTP协议
    J2EE学习笔记:JSP
    Hibernate 笔记(二) 数据关系
    top命令总结
    让gdb能打印C++中的容器类型
    ps命令注意事项
    自己动手写一个自动登录脚本gg
    request 中url拼接排序参数与签名算法
    python3.7 AES.MODE_ECB(128位) pkcs5padding 加密算法
  • 原文地址:https://www.cnblogs.com/M87-A/p/15334801.html
Copyright © 2011-2022 走看看