lombok的使用
来源:互联网 发布:蛇精吐火的软件 编辑:程序博客网 时间:2024/06/06 14:20
lombok是一个通过简单注解的形式帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,简单的说我们现在构造一个类,里面的Java的get、set方法,还有构造方法什么的现在不需要我们手动写了,源码编译时自动生成(编译成字节码文件时)。
<dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> </dependency></dependencies>
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/features/index.html
阅读全文
0 0
- lombok的使用
- Lombok 的使用
- lombok的使用
- lombok插件的使用
- lombok的使用
- lombok 注解的使用
- Java lombok的使用
- 记录lombok的使用
- lombok的使用
- lombok的使用
- lombok插件的使用
- 【Lombok】lombok使用教程
- lombok的使用和原理
- lombok的使用和原理
- lombok 的使用原理介绍
- lombok的使用和原理
- lombok的使用和原理
- lombok的使用和原理
- Request对象详细介绍
- iOS证书
- linux基础6
- 树莓派3基础配置教程
- JS 生成
- lombok的使用
- C#--Winform项目核心模块-基于DataTbale的视图实现成绩快速筛选
- epoll使用
- create volume
- ES6之Symbol
- Java面向对象多态性的应用
- 设计模式——建造者模式
- 每隔两分钟删除指定文件夹内容
- 3.Hibernate框架之联合主键