为什么要放弃Lombok?

一、Lombok概述

Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.
Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more. 

Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发,通过添加注解的方式,不需要为类编写getter或setter方法等等。

未使用lombok

代码示例

package cn.com.example18;

public class User {
    
    private Integer id;
    private String username;
    private String password;
    
    public User(){}

    public User(Integer id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + ''' +
                ", password='" + password + ''' +
                '}';
    }
}

反编译

Compiled from "User.java"
public class cn.com.example18.User {
  public cn.com.example18.User();
  public cn.com.example18.User(java.lang.Integer, java.lang.String, java.lang.String);
  public java.lang.Integer getId();
  public void setId(java.lang.Integer);
  public java.lang.String getUsername();
  public void setUsername(java.lang.String);
  public java.lang.String getPassword();
  public void setPassword(java.lang.String);
  public java.lang.String toString();
  public static void main(java.lang.String[]);
}


使用lombok

代码示例

package cn.com.example18;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User {

    private Integer id;
    private String username;
    private String password;

}

反编译

Compiled from "User.java"
public class cn.com.example18.User {
  public static void main(java.lang.String[]);
  public java.lang.Integer getId();
  public java.lang.String getUsername();
  public java.lang.String getPassword();
  public void setId(java.lang.Integer);
  public void setUsername(java.lang.String);
  public void setPassword(java.lang.String);
  public boolean equals(java.lang.Object);
  protected boolean canEqual(java.lang.Object);
  public int hashCode();
  public cn.com.example18.User();
  public cn.com.example18.User(java.lang.Integer, java.lang.String, java.lang.String);
  public java.lang.String toString();
}

二、Lombok使用

使用Lombok,需要导入相应的jar包以及在idea中下载插件并配置

1、导入jar包

# 导入jar包
lombok-1.18.12.jar

2、下载插件

在idea中下载lombok插件

为什么要放弃Lombok?

3、配置

在idea中开启注解,否则lombok无法使用,idea不能正常解析

勾选Enable annotation processing

为什么要放弃Lombok?

4、使用

注解 说明
@Data 注解在类上,生成setter、getter、equals、hashCode、toString
@Setter 注解在类或属性,生成setter,在类上,生成所有属性的setter,在属性上,只对该属性生成setter
@Getter 注解在类或属性,生成getter,在类上,生成所有属性的getter,在属性上,只对该属性生成getter
@ToString 注解在类上,添加toString方法
@EqualsAndHashCode 注解在类上,生成equals和hashCode方法
@NoArgsConstructor 注解在类上,生成无参构造器
@AllArgsConstructor 注解在类上,生成有参构造器
@Slf4j 注解在类上,生成log变量,private static final Logger log = LoggerFactory.getLogger(User.class);

代码示例

package cn.com.example18;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User1 {

    private Integer id;
    private String username;
    private String password;

    public static void main(String[] args) {

        new User1();
    }
}


原文始发于微信公众号(数字游民PG):为什么要放弃Lombok?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/174031.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!