摘要:虽然有人可能会说里面都自带自动生成这些方法的功能,但是使用会使你的代码看起来更加简洁,写起来也更加方便。使用不使用自动生成方法使用不使用自动生成无参数构造函数。
一、lombok简介
lombok是在学习过程中发现的一个非常好用的小工具,用了之后感觉的确很不错,所以特此来推荐一下。
lombok的官方地址:https://projectlombok.org/
lombok的Github地址:https://github.com/rzwitserlo...
那么lombok到底是个什么呢,lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要手动去建立getter和setter方法啊,构造函数啊之类的,lombok的作用就是为了省去我们手动创建这些代码的麻烦,它能够在我们编译源码的时候自动帮我们生成这些方法。
lombok能够达到的效果就是在源码中不需要写一些通用的方法,但是在编译生成的字节码文件中会帮我们生成这些方法,这就是lombok的神奇作用。
虽然有人可能会说IDE里面都自带自动生成这些方法的功能,但是使用lombok会使你的代码看起来更加简洁,写起来也更加方便。
二、lombok安装
lombok的安装跟一般引用jar包没有什么区别,可以到官网上下载最新的jar包,然后导入到项目里面就好啦。
Maven添加依赖
org.projectlombok lombok 1.16.10
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"); 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; }
}
@NoArgsConstructor: 自动生成无参数构造函数。
@AllArgsConstructor: 自动生成全参数构造函数。
@Data: 自动为所有字段添加@ToString, @EqualsAndHashCode, @Getter方法,为非final字段添加@Setter,和@RequiredArgsConstructor!
还有其他一些比如自动生成日志对象等等之类的注解可以到官方网站去了解,就不一一列举了。
官方文档https://projectlombok.org/fea...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/67476.html
摘要:提高编码效率使代码更简洁消除冗长代码避免修改字段名字时忘记修改方法名提高下逼格以上就是的优点,当然,的优点远远不止以上几点,使用,你可以更加优雅高效的编辑代码。实战完成了上述准备之后,就可以愉快的使用进行编码了。接下来是使用简化后的代码。 Lombok介绍 近来偶遇一款撸码神器,介绍给大家~相信许多小伙伴都深有体会,POJO类中的千篇一律的getter/setter,construct...
摘要:使用,简化代码为了简化与,提供了一种机制,帮助我们自动生成这些样板代码。但是,在实际项目中,完全没有使用到。源码审查是一个源码审查工具。最新版已经支持的全部注解,不再认为是没有使用的变量。 一个典型的 Java 类 public class A { private int a; private String b; public int getA() { ret...
摘要:什么是一言以蔽之是一种工具,提供了简单的注解来简化我们的重复冗长代码。但在实际的项目中,我们常常只在定义的时候用上,而在业务代码中很少用到。总结是个非常有用的工具,能够帮助我们精简很多臃肿冗长的代码,不过也有其局限性,推荐在定义中使用。 什么是Lombok 一言以蔽之:lombok是一种工具,提供了简单的注解来简化我们的重复冗长Java代码。比如一个Java Bean,注解了lombo...
摘要:使用方法能以简单的注解形式来简化代码,提高开发人员的开发效率。能通过注解的方式,在编译时自动为属性生成构造器方法。出现的神奇就是在源码中没有和方法,但是在编译生成的字节码文件中有和方法。没法实现多种参数构造器的重载。 1 Lombok背景介绍 官方介绍如下: Project Lombok makes java a spicier language by addi...
阅读 1587·2019-08-30 13:18
阅读 1576·2019-08-29 12:19
阅读 2094·2019-08-26 13:57
阅读 4137·2019-08-26 13:22
阅读 1179·2019-08-26 10:35
阅读 2990·2019-08-23 18:09
阅读 2499·2019-08-23 17:19
阅读 675·2019-08-23 17:18