Intellij IDEA 安装lombok及使用详解

  项目中经常使用bean,entity等类,绝大部分数据类类中都需要get、set、toString、equals和hashCode方法,虽然eclipse和idea开发环境下都有自 动生成的快捷方式,但自动生成这些代码后,如果bean中的属性一旦有修改、删除或增加时,需要重新生成或删除get/set等方法,给代码维护增加负担。而使用了lombok则不一样,使用了lombok的注解 (@Setter,@Getter,@ToString,@@RequiredArgsConstructor,@EqualsAndHashCode或@Data)之后,就不需要编写或生成get/set等方法,很大程度上减少了代码量,而且减少了代码维护的负担。故强烈建议项目中使用lombok,去掉bean中get、set、toString、equals和hashCode等方法的代码。

一、实战

1.安装lombok插件:

具体流程如图:

1.1

image.png

1.2

image.png

1.3

image.png

2.添加lombok的maven的pom.xml依赖:

<dependency>  
      <groupId>org.projectlombok</groupId>  
      <artifactId>lombok</artifactId>  
      <version>1.16.10</version>  
</dependency>

3. 示例代码Student.java

package com.lombok.demo;  
  
  
import lombok.EqualsAndHashCode;  
import lombok.Getter;  
import lombok.Setter;  
import lombok.ToString;  
  
/** 
 * Created by zhangzh on 2017/2/8. 
 */  
@Setter  
@Getter  
@ToString  
@EqualsAndHashCode  
public class Student {  
  
    private String name;  
    private int age;  
    private String male;  
    private String studentNo;  
}  

4. 测试类LombokTest.java

package com.lombok.demo;  
  
import lombok.extern.java.Log;  
  
/** 
 * Created by zhangzh on 2017/2/8. 
 */  
@Log  
public class LombokTest {  
  
    public static void main(String[] args) {  
  
    Student student = new Student();  
    student.setAge(27);  
    student.setMale("man");  
    student.setName("lance");  
    student.setStudentNo("2017");  
  
    System.out.println(student.toString());  
  
    Student student2 = new Student();  
    student2.setAge(27);  
    student2.setMale("man");  
    student2.setName("lance");  
    student2.setStudentNo("2017");  
  
    System.out.println(student.equals(student2));  
  
    student2.setStudentNo("2018");  
  
    System.out.println(student.equals(student2));  
  
    log.info("lombok test");  
  
    }  
}  

5. 输出结果:

Student(name=lance, age=27, male=man, studentNo=2017)  
true  
false  
lombok test  

结果分析,如果没有添加@Setter注解,则LombokTest中的student示例无法使用setAge()等方法。使用lombok之后,省去了许多没必要的get,set,toString,equals,hashCode代码,简化了代码编写,减少了代码量。 另外@Data注解的作用相当于 @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode的合集。 另外@Log 省去了在LombokTest中添加 getLogger的如下代码:

private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());

看,简单吧!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android 研究

APK安装流程详解5——Installer、InstallerConnection和Installd守护进程

因为Installer继承自SystemService,所以我们看下Installer的onStart方法 代码在Installer.java 396行

18310
来自专栏ImportSource

Junit 5新特性全集

本文略长,但都是大白话,如果你能一口气看完,你赢了。 如果你来不及看这么长,那么建议你滑到文末,直接看黑体部分就知道大概了。 在5中的一个测试类的基本生命周期是...

515120
来自专栏偏前端工程师的驿站

Java魔法堂:JUnit4使用详解

目录                                                                              ...

19850
来自专栏YG小书屋

Hadoop Streaming 读ORC文件

hadoop Streaming的处理流程是先通过inputFormat读出输入文件内容,将其传递mapper,再将mapper返回的key,value传给re...

25120
来自专栏听雨堂

VB中Unicode的转换

    VB本身的字符串格式就是Unicode,用Winsock发送字符串的话,会默认把字符串转换为Ansi的格式进行发送。Ansi格式,对于英文符号等仍然使用...

26680
来自专栏wannshan(javaer,RPC)

dubbo通信消息解析过程分析(1)

由于rpc底层涉及网络编程接口,线程模型,网络数据结构,服务协议,细到字节的处理。牵涉内容较多,今天就先从一个点说起。 说说,dubbo通过netty框架做传...

54460
来自专栏大内老A

依赖注入[5]: 创建一个简易版的DI框架[下篇]

为了让读者朋友们能够对.NET Core DI框架的实现原理具有一个深刻而认识,我们采用与之类似的设计构架了一个名为Cat的DI框架。在《依赖注入[4]: 创建...

9130
来自专栏LanceToBigData

SpringBoot(四)SpringBoot中lombok使用

lombok概述 lombok简介 Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCo...

52390
来自专栏跟着阿笨一起玩NET

关于webservice不支持方法重载的解决办法

15310
来自专栏逍遥剑客的游戏开发

MPQ文件系统优化(续)

18550

扫码关注云+社区

领取腾讯云代金券