lombok简介及使用

Posted gizing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lombok简介及使用相关的知识,希望对你有一定的参考价值。

lombok简介

lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要手动去建立getter和setter方法啊,构造函数啊之类的,lombok的作用就是为了省去我们手动创建这些代码的麻烦,它能够在我们编译源码的时候自动帮我们生成这些方法。

lombok能够达到的效果就是在源码中不需要写一些通用的方法,但是在编译生成的字节码文件中会帮我们生成这些方法,这就是lombok的神奇作用。

虽然有人可能会说IDE里面都自带自动生成这些方法的功能,但是使用lombok会使你的代码看起来更加简洁,写起来也更加方便。

lombok安装

  1. 给IDE装上lombok插件,如果不装虽然可以运行,但是编辑时会报一大堆错误警告

    官网下载,运行jar包选择eclipse进行安装

  2. 项目引入lombok.jar
    • 用maven命令
      <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20</version> <scope>provided</scope> </dependency> </dependencies>
    • 将lombok.jar包放入项目的编译路径

lombok使用

@NonNull: 可以帮助我们避免空指针。

// 使用lombok
import lombok.NonNull;
public class NonNullExample extends Something {
    private String name;  
    public NonNullExample(@NonNull Person person) {
        super("Hello");
        this.name = person.getName();
    }
}
// 不使用lombok
public class NonNullExample extends Something {
    private String name;  
    public NonNullExample(@NonNull Person person) {
        super("Hello");
        if (person == null) {
            throw new NullPointerException("person");
        }
        this.name = person.getName();
    }
}

@Cleanup: 自动帮我们调用close()方法。

// 使用lombok
import lombok.Cleanup;
import java.io.*;
public class CleanupExample {
    public static void main(String[] args) throws IOException {
        @Cleanup InputStream in = new FileInputStream(args[0]);
        @Cleanup OutputStream out = new FileOutputStream(args[1]);
        byte[] b = new byte[10000];
        while (true) {
            int r = in.read(b);
            if (r == -1) break;
            out.write(b, 0, r);
        }
    }
}
// 不使用lombok
import java.io.*;
    public class CleanupExample {
        public static void main(String[] args) throws IOException {
            InputStream in = new FileInputStream(args[0]);
            try {
                OutputStream out = new FileOutputStream(args[1]);
                try {
                    byte[] b = new byte[10000];
                    while (true) {
                    int r = in.read(b);
                    if (r == -1) break;
                    out.write(b, 0, r);
                    }
                } finally {
                    if (out != null) {
                        out.close();
                    }
                }
            } finally {
                if (in != null) {
                in.close();
            }
        }
    }
}

@Getter / @Setter: 自动生成Getter/Setter方法

//使用lombok
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
public class GetterSetterExample {
    @Getter @Setter private int age = 10;
    @Setter(AccessLevel.PROTECTED) private String name;
}
// 不使用lombok
public class GetterSetterExample {
    private int age = 10;
    private String name;
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    protected void setName(String name) {
        this.name = name;
    }
}

其他注释

官网链接

以上是关于lombok简介及使用的主要内容,如果未能解决你的问题,请参考以下文章

Lombok简介

lombok使用及常用注解

Intellij IDEA 安装lombok及使用详解

Intellij IDEA 安装lombok及使用详解

Intellij IDEA 安装lombok及使用详解

Intellij IDEA 安装 lombok及使用详解