后端

(3) Lombok

菠萝猫 · 1月21日 · 2020年 212次已读

介绍Lombok

Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。 Lombok也存在一定风险,在一些开发工具商店中没有Project Lombok支持选择。 IDE和JDK升级存在破裂的风险,并且围绕项目的目标和实施存在争议。 但是很香。

添加方法

IDEA 可下载Lombok插件

maven项目可添加相应依赖:

       <!-- 引入Lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
            <scope>provided</scope>
        </dependency>

其他可参考官网: https://projectlombok.org/ —— install

常用注解

@Setter :注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。

@Getter :使用方法同上,区别在于生成的是getter方法。

@ToString :注解在类,添加toString方法。

@EqualsAndHashCode: 注解在类,生成hashCode和equals方法。

@NoArgsConstructor: 注解在类,生成无参的构造方法。

@RequiredArgsConstructor: 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。

@AllArgsConstructor: 注解在类,生成包含类中所有字段的构造方法。

@Data: 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。

@Slf4j: 注解在类,生成log变量,严格意义来说是常量。

具体查看官网: https://www.projectlombok.org/features/all

简单应用

package com.itmuch.usercenter;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @ClassName: user-center
 * @Description: Lombok应用
 * @Author: 菠萝猫
 * @Date: 2020/1/21 11:32
 * @Version: 1.0
 **/
//打印日志
@Slf4j
public class LombokTest {
    //打日志(旧方法)
   // public static final Logger LOGGER = LoggerFactory.getLogger(LombokTest.class);
    public static void main(String[] args) {
        //建造者模式 (Feign)
        UserRegisterDTO.UserRegisterDTOBuilder build = UserRegisterDTO.builder()
                .email("x")
                .password("X")
                .confirmPassword("x");
        //打印日志的用法
        log.info("构造出来的UserRegisterDTO = {}",build);
    }
}
//Lombok 生成getter、setter
@Data
@NoArgsConstructor //无参构造方法
@AllArgsConstructor//全参构造方法
@Builder //创建类的对象进行操作
class UserRegisterDTO{
    private String email;
    private String password;
    private String confirmPassword;
}

运行结果:

11:51:36.027 [main] INFO com.itmuch.usercenter.LombokTest - 构造出来的UserRegisterDTO = UserRegisterDTO.UserRegisterDTOBuilder(email=x, password=X, confirmPassword=x)


版权声明:本站采用 “知识共享署名 – 非商业性使用 – 相同方式共享 4.0 中国大陆许可协议” 进行许可,您可以转载本站文章,转载时请以超链接形式标明文章原始出处,Thanks.
0 条回应