博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lombok 使用攻略
阅读量:7255 次
发布时间:2019-06-29

本文共 1978 字,大约阅读时间需要 6 分钟。

1. Lombok 简介

   Lombok 可以通过简单的注解来帮助我们简化消除一些必须有但显得很臃肿的Java代码,通过使用对应的注解,可以在编译源码的时候生成对应的方法。

   Lombok 既是一个 IDE 插件,也是一个项目要依赖的 jar 包。

   Lombok 依赖 jar 包的原因是因为编译时要用它的注解。插件的原因是他要在编译器编译时通过操作 AST (抽象语法树)改变字节码生成。

   也就是说它可以改变 Java 语法. 它不像 Spring 的依赖注入或者 Hibernate 的 orm 一样是运行时的特性,而是编译时的特性。

   官网地址:

2. 使用方式  

 Maven 坐标:

org.projectlombok
lombok
${lombok.version}

    IDEA 安装插件:

   编译时启用注解处理:

3. 项目实战

  不使用 Lombok @Data:

public class Student{    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;    }}

   使用 Lombok @Data (编译时为所有字段添加@ToString/@EqualsAndHashCode/@Getter/为非final字段添加@Setter/@RequiredArgsConstructor):

@Datapublic class Student{    private int age = 10;    private String name;}

   不使用  Lombok @CleanUp:

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

   使用 Lombok@CleanUp(在编译时添加调用close方法):

@Cleanup InputStream inputStream = new FileInputStream(args[0]);        @Cleanup OutputStream outputStream = new FileOutputStream(args[1]);        byte[] b = new byte[10000];        while (true) {            int r = inputStream.read(b);            if (r == -1) break;            outputStream.write(b, 0, r);        }

   当然还有比 @Data 粒度更小的注解,比如 @Getter、@Setter、@NoArgsConstructor,更多注解:

 

转载地址:http://mrzdm.baihongyu.com/

你可能感兴趣的文章
模板方法模式
查看>>
[mybatis]Example的用法
查看>>
3D跑酷遇到的问题
查看>>
putty 、xshell的使用 和 putty 、xshell、 shell 间免密登陆
查看>>
项目管理之怒目相争,外行能不能领导内行做软件开发?
查看>>
扬帆起航,再踏征程(四)
查看>>
Objective-C基础笔记(2)@property和@synthesize
查看>>
Android系统开发(1)——GCC编译器的编译和安装过程
查看>>
详解Python模块导入方法
查看>>
mysql一些权限相关操作,数据库可以远程连接或者说用IP地址可以访问
查看>>
关于c#(vs)dategridview控件继承不能修改的问题
查看>>
JAVA通过使用sort方法排序
查看>>
跨域CORS 、第二章
查看>>
一秒去除Win7快捷方式箭头
查看>>
Linux上Simplescalar/ARM的安装和运行文档
查看>>
中断是CPU的机制
查看>>
DoD and DoR
查看>>
golang 资源
查看>>
关于FileFOutputStream应用中的FileNotFoundException问题
查看>>
[产品设计] - 设计理念
查看>>