M87星云

导航

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;

}

查看作用效果

 

 

 

 

 

 

 

 

posted on 2021-09-25 16:53  挽留匆匆的美丽  阅读(2330)  评论(0编辑  收藏  举报