eclipse集成lombok,以及lombok注解的使用

一。lombok简介

    Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO)。它通过注释实现这一目的。通过在开发环境中实现Lombok,开发人员可以节省构建诸如hashCode()和equals()这样的方法。

二。安装lombok

    1.首先下载Lombok.jar包,下载地址:http://projectlombok.org/download.html

    2.下到本地后双击运行Lombok.jar,数秒后将弹出一框,以确认eclipse的安装路径 ,如图:

        

    注意如果eclipse没有安装到默认目录,那么需要点击Specify location..选择eclipse.exe所在的路径,然后点击Install/update即可完成安装。

    3.关闭重启eclipse (IDE 使用 lombok 是需要安装的,如果不安装,IDE 则无法解析 lombok 注解。)

    4.项目里pom文件直接加入依赖
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.0</version>
        </dependency>

三。lombok一些注释的使用方法:

lombok使用过程中主要是靠注解起作用的,官网上的文档里面有所有的注解,这里不一一罗列,只说明其中几个比较常用的。

1.@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();
    }
}

2.@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();
            }
        }
    }
}

3.@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;
    }
}

四。全部的注解和讲解

@Data : 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法。

@Getter/@Setter : 可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以指定Getter/Setter方法的访问级别。

@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象。

@Slf4j : 注解在类上;为类提供一个 属性名为log 的 log4j 日志对象。

@NoArgsConstructor : 注解在类上;为类提供一个无参的构造方法。

@AllArgsConstructor : 注解在类上;为类提供一个全参的构造方法。

@NonNull : 注解在属性上,用来校验参数非空,可以帮助我们避免空指针。

@ToString : 注解在类上,重写toString方法。

此外还有注解:val,var,@EqualsAndHashCode,@RequiredArgsConstructor,@Cleanup,@Value,@Builder,@SneakyThrows,@Synchronized,experimental。

详细的学习地址请看官网: https://projectlombok.org/features/all

猜你喜欢

转载自blog.csdn.net/qq_23167527/article/details/80608351