文档章节

以简单的方式消除 Java 的冗长-IDEA

HGMrWang
 HGMrWang
发布于 2017/08/30 10:41
字数 583
阅读 17
收藏 0

概序

Lombok 是一种 Java Archive (JAR) 文件,可用来消除 Java 代码的冗长。

一个标准的 Java bean,一个典型的 Java bean 一般具有几个属性,getter 和 setter。通常还会有一个 toString() 方法、一个 equals() 方法和一个 hashCode() 方法。

为了消除代码行,Lombok 使用注释来标识类和 Java 代码块。所有的 getter、setter 以及其他三个方法都是在编译时被暗示并包括进来的。

Lombok 还让您得以简化代码的其他部分 — 不仅仅是 Java bean。比如,还可以减少 try/catch/finally 块内以及同步方法内的冗余代码。

IDEA安装Lombok 插件

  1. 打开IDEA的Settings面板,并选择Plugins选项,然后点击 “Browse repositories..”
  2. 在输入框输入”lombok”,得到搜索结果,Lombok plugin,点击安装,然后安装提示重启IDEA,安装成功; 

项目集成Lombok

方式一:添加lombok的maven依赖

       <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok-maven -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok-maven</artifactId>
            <version>1.16.18.1</version>
        </dependency>

 方式二:手动添加lombok.jar.

使用lombok

创建一个简单的JavaBean

public class Food{
    private String name;
    private int size;
    private String color;
    private String style;
}

@Data注解的使用

使用@Data注解为上面的JavaBean添加getter、setter、equals、hashcode、toString等方法。

import lombok.Data
@Data
public class Food{
    private String name;
    private int size;
    private String color;
    private String style;
}

看编译后的.class

在生成 getter/setter 方法时,Lombok 遵从传统的标准。所有这些方法名都以 get 或 set 开头并且属性名都是大写的。当然,如果属性是一个 Boolean,情况例外。在这种情况下,getter 以 is 开始,而非 get。这是 Java bean 的一种标准实践。

@Cleanup 注解使用

为了消除 try/catch/finally 块的冗余,只需使用 @Cleanup 注释

public static void main(String[] args) throws IOException {
    @Cleanup InputStream in = new FileInputStream(args[0]);
    @Cleanup OutputStream out = new FileOutputStream(args[1]);

}

这个代码块不仅消除了 try/catch/finally 块,而且还关闭了开放流

@Synchronized 注解使用

Lombok 还可以减少同步方法所需的代码的冗余。很自然,这是用 @Synchronized 方法实现的。

@Synchronized
private int foo() {
    //some magic done here
    return 1;
}

如果用 @Synchronized 注释的这个方法是静态的,那么 Lombok 就会创建一个名为 $LOCK 的类对象,并会针对该对象同步这个方法。

 

© 著作权归作者所有

共有 人打赏支持
HGMrWang
粉丝 7
博文 88
码字总数 41577
作品 0
深圳
程序员
私信 提问
JetBrains 的 IntelliJ IDEA 走向开源

随着开源免费社区版的最新推出,著名的 Java IDE 组合将充斥市场 布拉格2009年10月16日电 /美通社亚洲/ -- 为软件开发商提供增效型智能工具的创建商 JetBrains(R) 宣布了其获奖的 Java IDE -...

红薯
2009/10/16
2.7K
0
IntelliJ IDEA 10.0 64位运行方法

IntelliJ IDEA 10.0 默认的快捷方式是以32位运行的.虽然性能上面感觉不出什么变化,但让人心里不很爽.IDEA是JAVA程序,如果我们直接从JAVA命令运行的话那就默认是64位了.还好,IDEA支持以命令调...

SeanCai
2010/12/19
0
1
2.2 Selenium 环境搭建

Java 环境搭建 下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 安装JDK 配置Java 环境 校验是否安装完成 控制台输入: java –version 提示版......

米阳MeYoung
2018/04/24
0
0
IntelliJ IDEA 2017.2.5 发布

IntelliJ IDEA 2017.2.5 发布了。IntelliJ IDEA 被认为是当前 Java 开发效率最快的 IDE 工具。它整合了开发过程中实用的众多功能,几乎可以不用鼠标可以方便的完成你要做的任何事情,最大程度...

淡漠悠然
2017/09/27
4.2K
45
Ubuntu 18.04.1 搭建Java环境和HelloWorld

一、搭建Java环境 系统环境 Ubuntu 18.04.1 JDK 8 IDEA 2018.2 1.下载JDK 官网地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 选择相应的版本,点击jdk,进入下...

王磊的博客
2018/08/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux下端口转发工具rinetd介绍

linux下简单好用的工具rinetd,实现端口映射/转发/重定向,针对TCP协议,不支持UDP。 官网地址 http://www.boutell.com/rinetd 里面介绍及使用齐全。 使用场景举例: 阿里云内网Redis连接问题...

ouhoo
11分钟前
1
0
Oracle学习日志-5(算数运算符,比较运算符和逻辑运算符)

因为有编程基础,所以对于这一章还是很好理解,只需要注意对NULL的运算。 操作的表格 算数运算符 查询商品名字和商品售价,并商品售价乘2 SELECT product_name,sale_price * 2 AS "sale_pri...

白话
23分钟前
1
0
搜索引擎(Lucene介绍、分词器详解)

Lucene介绍 Lucene简介 最受欢迎的java开源全文搜索引擎开发工具包。提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简...

这很耳东先生
28分钟前
0
0
quartz详细介绍

quartz常用api Scheduler 调度程序交互的主要API。 Job 希望由调度程序执行的组件实现的接口。 JobDetail 用于定义作业的实例。 JobDataMap 可以包含不限量的序列化数据,在job运行的时候可以...

大笨象会跳舞吧
28分钟前
1
0
kotlin使用jackson序列化enum

默认情况下,我们序列化与反序列化enum是它的name,事实上大部分情况下我们需要序列化的是我们自定义的value,那应该怎么做呢? 这种情况下我们就需要@JsonValue与@JsonCreator data class U...

weidedong
33分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部