博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Java开发代码优化】lombok插件,通过java注解简化代码的开发
阅读量:4186 次
发布时间:2019-05-26

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

在开发的过程中,我们如何写出高质量的代码,写出优雅的代码,写出高度可扩展的代码。今天我们就简单介绍一下如何提高我们的代码质量。

使用lombok简化代码

在介绍lombok之前,我们先来看一段代码:

public class Person {    private Long id;    private String name;    private Integer age;    private Integer sex;    public Long getId() {        return id;    }    public void setId(Long id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }    public Integer getSex() {        return sex;    }    public void setSex(Integer sex) {        this.sex = sex;    }}

这段代码大家应该都很熟悉,我们在开发javaweb项目时,定义一个Bean,会先写好属性,然后设置getter/setter

方法,这段代码本身没有任何问题,也必须这样写。

但是每个bean都需要getter/setter,这样写的话代码就不够优雅了,这段代码我们如何优雅的写呢?接下来,就轮到lombok出场了。

lombok是一个通过注解形式来简化我们的代码的一个插件,要使用它,我们应该先安装插件,安装步骤如下:

1.file ---->setting---->plugins
在这里插入图片描述

2、搜索lombok,并安装它,然后重启。

在这里插入图片描述

3、在file --> setting -->Build --> compiler 找到Annotaion Processors,将 Enable annotaion processing 勾选上。

在这里插入图片描述

4、 最后我们需要添加lombok的依赖:

org.projectlombok
lombok
1.18.0
provided

接下来,我们通过注解简化Person类

import lombok.Getter;import lombok.Setter;@Setter@Getterpublic class Person {     private Long id;     private String name;     private Integer age;     private  Integer sex;}

我们可以看到,在类上加入了Getter 和Setter 两个注解,将之前写的getter /setter 方法干掉了,这种代码看者清爽,写个main方法测试下:

public static void main(String[] args) {        Person person = new Person();        person.setName("lynn");        person.setId(1L);        System.out.println(person.getName());    }

我们并没有写任何的getter\setter 方法,只是加了两个注解就可以调用了,这是为什么呢?这是因为lombok提供了Getter 和Setter 注解,是编译时注解,也就是在编译时,lombok会自动为我们添加getter /setter方法,因此我们不需要去写get /set方法就可以直接调用。

lombok 提供了很多注解,下面我们了解一下其他的注解:

@Accessors

该注解的作用是:是否开启链式调用,比如我们开始链式调用:

import lombok.Getter;import lombok.Setter;import lombok.experimental.Accessors;@Setter@Getter//chain 设置为true表示开始链式调用@Accessors(chain = true)public class Person {     private Long id;     private String name;     private Integer age;     private  Integer sex;    public static void main(String[] args) {         Person p = new Person();         p.setName("li").setAge(14);    }}

Builder

构建者模式 ,我们在使用第三方框架时经常看到Builder 模式,比如HttpClient 的:

RequestConfig config = RequestConfig.custom()                            .setConnectionRequestTimeout(timeout)                            .setConnectTimeout(timeout)                            .setSocketTimeout(timeout)                            .build();

那么通过 Builder 注解可以很方便的实现它:

@Setter@Getter//chain 设置为true表示开始链式调用@Accessors(chain = true)@Builderpublic class Person {     private Long id;     private String name;     private Integer age;     private  Integer sex;    public static void main(String[] args) {         Person p = new PersonBuilder().name("zhang").age(12).build();        System.out.println("name:"+p.getName());    }}

@Data

编译时添加getter、setter、toString、equals 和hashCode方法,如:

@Datapublic class Person {     private Long id;     private String name;     private Integer age;     private  Integer sex;    public static void main(String[] args) {         Person person = new Person();        person.setName("zhang");        System.out.println("name:"+person.getName());    }}

@Cleanup

添加输入输出流close 方法,如:

public static void main(String[] args) throws Exception{        @Cleanup InputStream inputStream = new FileInputStream("1.txt");    }

我们通过断点调试发现,它会调用close(),说明lombok 帮我们生成了close()

在这里插入图片描述

通过lombok 的注解,可以极大的减少我们的代码量,并且更加清爽,更加优雅。

lombok 还有很多注解:如:

  • @ToString:生成toString() 方法。
  • @EqualsAndHashCode: 生成 equals 和hashCode方法。
  • @NoArgsConstructor、 @AllArgsConstructor: 生成午参合全参构造函数。
  • Value: 生成getter 、toString、equals、hashCode和全参构造函数
  • @NonNull :标注在字段和方法上,表示非空,会在第一次使用时判断。

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

你可能感兴趣的文章
Kafka 对比 ActiveMQ
查看>>
Elasticsearch的一些优化
查看>>
在eclipse中通过local的模式可以正确的调试hadoop2.2
查看>>
HDFS 常用的文件操作命令
查看>>
使用Hive如何和Hbase集成
查看>>
把eclipse中的hadoop项目,换了一个工作空间,再次启动任务时
查看>>
在Win上提交hadoop集群的作业
查看>>
JAVA IDE IntelliJ IDEA使用简介(一)—之界面元素
查看>>
GROUP BY与COUNT用法详解
查看>>
pgadmin
查看>>
Greenplum性能调优
查看>>
gp性能管理
查看>>
linux的清屏命令
查看>>
maven打jar包
查看>>
Win10系统ie浏览器打不开网页的2种解决方法
查看>>
自己搭建一套hadoop的运行环境
查看>>
本次装的hadoop版本是hadoop1.2的版本
查看>>
跳板机SecureCRT
查看>>
namenode的log时,散仙发现有如下的警告信息
查看>>
用过eclipse直接向hadoop提交MR作业
查看>>