美文网首页
lombok的使用

lombok的使用

作者: ggr | 来源:发表于2018-04-02 21:48 被阅读0次

今天看到峰哥(大神)写的的项目的pom里面引人了一个叫Lombok 的依赖,不认识便百度了一下结果如下:
   Lombok 就是一个可以帮助我们生成在运行期间动态加入样板文件的jar或者说插件。样板文件说白了就是我们通常就是之我们定义一个对象,除了必要的属性和方法,必须还要写一些getter和setter方法,可能还要写一个构造器、equals方法、或者hash方法.这些方法很冗长而且没有技术含量。

lombok安装

lombok的安装跟一般引用jar包没有什么区别,可以到官网上下载最新的jar包,然后导入到项目里面就好啦。

Maven添加依赖

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.18</version>
    </dependency>
</dependencies>

Intellij idea开发的话需要安装Lombok plugin,同时设置 Setting -> Compiler -> Annotation Processors -> Enable annotation processing勾选。

lombok使用

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

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

使用lombok:

import lombok.NonNull;
    public class NonNullExample extends Something {
        private String name;  
        public NonNullExample(@NonNull Person person) {
        super("Hello World");
        this.name = person.getName();
    }
}

不使用lombok:

public class NonNullExample extends Something {
    private String name;  
    public NonNullExample(@NonNull Person person) {
        super("Hello World");
        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[1024];
        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[1024];
                    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;
    }
}

@NoArgsConstructor: 自动生成无参数构造函数。

@AllArgsConstructor: 自动生成全参数构造函数。

@Data: 自动为所有字段添加@ToString为非final字段添加@Setter @Setter,和@RequiredArgsConstructor

综合案例:

@AllArgsConstructor
@NoArgsConstructor
@Data
@Log4j
@ToString(exclude="age")//exclude设置方法返回不需要包含的属性
public class Person {

    @NonNull private String username;
    @NonNull private int age;
    @NonNull private boolean sex;
    
    public static void main(String[] args) {
        Person person = new Person("ggr",1,true);
        System.out.println(person.getAge());
        @Cleanup InputStream inputStream = new FileInputStream("ggr.txt");
        
    }   
}

try-catch的就算了,jdk1.7之后会自动关闭了。
更多请参考官方说明文档

相关文章

  • lombok

    lombok的安装以及使用 什么是lombok 有什么好处 如何使用 IntelliJ IDEA 安装lombok...

  • 安装lombok

    使用lombok要先安装! 使用lombok要先安装! 使用lombok要先安装! 编译jar包后会自己找到相关的...

  • lombok 插件使用技巧

    lombok @EqualsAndHashCode 注解的影响 Java中优雅的使用Lombok

  • 推荐几个自己使用的使用IDEA插件

    推荐几个自己使用的使用IDEA插件 Lombok plugin 介绍 使用Lombok时候可以安装这个插件,能够让...

  • Lombok的基本用法

    一、引入lombok IDEA还需要下载lombok插件。 二、lombok的使用 1.@Data @Data的功...

  • IDEA报: Lombok Requires Annotatio

    一、问题描述 IDEA使用lombok,提示: Lombok Requires Annotation Proces...

  • lombok guide

    lombok guide lombok是什么 lombok怎么用 这里不谈原理,不讲性能,只谈使用。 这里只说比较...

  • Jhipster之使用lombok工具

    关于lombok介绍,请参考lombok 在jhipster中使用lombok,在pom.xml中修改如下 1.加...

  • SpringBoot注解学习之@Accessors

    Accessor的中文含义是存取器;它是在lombok插件下使用的,使用前需下载lombok插件。 包含的属性: ...

  • 如何学习lombok

    如何学习lombok lombok为什么出现,解决了什么问题? 在项目中使用Lombok可以减少很多重复代码的书写...

网友评论

      本文标题:lombok的使用

      本文链接:https://www.haomeiwen.com/subject/gtffhftx.html