Lombok介绍附比较好用的几种注释推荐

Posted 来老铁干了这碗代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lombok介绍附比较好用的几种注释推荐相关的知识,希望对你有一定的参考价值。

一. 前言

当属性多时会出现大量的 getter/setter 方法,冗余,且一旦修改属性,就需要修改对应的方法。会耗费大量的时间,也会影响美观,Lombok因此诞生,目的是让java变得简洁,快速。

Lombok 可以提高开发效率。


二. Lombok使用

1)引入相应的Maven包

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.10</version>
        <scope>provided</scope>
    </dependency>

2)在idea中下载Lombok插件

在idea的setting设置中的plugins,搜索lombok插件,下载完后,会让你重启idea,重启idea就可以了.

注意:idea 2020最后一个版本及以后,已经内置了Lombok插件,无需下载。


三. 常用方法

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

@Setter @Getter 生成 get、set 方法

使用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;
    


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

此外还有:

  • @NoArgsConstructor @AllArgsConstructor 生成无参、全参构造器
  • @ToString 生成toString方法,
  • @Data 生成get、set、toString等所有常用方法。

以上就是Lombok常用的方法了,记住这些就可以适用99%的场景了。

以上是关于Lombok介绍附比较好用的几种注释推荐的主要内容,如果未能解决你的问题,请参考以下文章

Lombok插件

java Webservice都有哪几种方式啊,哪种方式比较好啊

java 中的几种注释方式

详解单页面路由的几种实现原理(附demo)

Matlab实现和使用神经网络的几种方式详细讲解--附代码可下载

深度学习中常用的几种卷积(上篇):标准二维卷积转置卷积1*1卷积(附Pytorch测试代码)