项目中经常使用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

1.2

1.3

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

看,简单吧!
---------------------
作者:zhglance
来源:CSDN
原文:https://blog.csdn.net/zhglance/article/details/54931430
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/telwanggs/p/9963450.html

Intellij IDEA 安装lombok及使用详解相关推荐

  1. idea普通java项目引入lombok_Intellij IDEA 安装lombok及使用详解

    项目中经常使用bean,entity等类,绝大部分数据类类中都需要get.set.toString.equals和hashCode方法,虽然eclipse和idea开发环境下都有自动生成的快捷方式,但 ...

  2. python如何安装torch_PyTorch安装与基本使用详解

    什么要学习PyTorch? 有的人总是选择,选择的人最多的框架,来作为自己的初学框架,比如Tensorflow,但是大多论文的实现都是基于PyTorch的,如果我们要深入论文的细节,就必须选择学习入门 ...

  3. python3.8安装pygame_Python3.8安装Pygame教程步骤详解

    注:因为最近想用一下Python做一些简单小游戏的开发作为项目练手之用,而Pygame模块里面提供了大量的有用的方法和属性.今天我们就在之前安装过PyCharm的基础上,安装Pygame,下面是安装的 ...

  4. mysql 6.5安装_RedHat6.5安装MySQL5.7教程详解

    RedHat6.5安装MySQL5.7教程分享,供大家参考,具体内容如下 安装环境:RedHat6.5 第一步:下载 下载MySQL5.7:http://dev.mysql.com/get/Downl ...

  5. php5.6.33安装教程,centos7手动安装PHP5.6.33详解

    本文主要和大家分享centos7手动安装PHP5.6.33详解,希望能帮助到大家. 1,PHP官网下载php-5.6.33.tar.bz2 2,解压到/usr/local/下 3,进入目录执行:./c ...

  6. CentOS 7安装教程(图文详解)如下

    虚拟机安装 CentOS 7安装教程(图文详解)如下:

  7. caffe linux 教程,CentOS7安装Caffe的教程详解

    安装依赖包 sudo yum install protobuf-devel leveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel ...

  8. xp系统本地服务器环境配置,Windows XP安装Apache环境图文详解Windows服务器操作系统 -电脑资料...

    本文章来简单的介绍Windows XP安装Apache环境图文方法,有需要了解的朋友可参考参考, 双击 apache_2.2.8-win32-x86-no_ssl.msi 文件,开始安装 Apache ...

  9. linux centos7 mysql_Linux centos7环境下安装MySQL的步骤详解

    Linux centos7环境下安装MySQL的步骤详解 安装MySQL mysql 有两个跟windows不同的地方 1).my.ini 保存到/etc/my.ini 2).用户权限,单独用户执行 ...

最新文章

  1. 比特币区块的产生速度为何被设定为10分钟?
  2. Redis集群的基本配置
  3. jquery笔记(常用技术)
  4. Windows下的常用的DOS命令
  5. SSD硬盘 全盘安全擦除
  6. “双十一”即将来临,先来看看快递物流企业的大数据
  7. iOS开发那些事-iOS常用设计模式–委托模式案例实现
  8. 文件上传fileupload文件接收
  9. HA集群--corosync+pacemaker
  10. 全网最详细的VMware虚拟机下载安装教程
  11. “运行”窗口命令大全
  12. 详解两个队列实现一个栈(python实现——经典面试题)
  13. 2011年分形艺术国际大赛比赛规则
  14. Linux中升级GLIBC,终结版,测试通过
  15. 做谷歌广告投放关键字英文,只懂英文可以吗?
  16. [安卓开发笔记一]Android开发配置opencv环境超详细教程
  17. 【数据挖掘实验】关联规则——CARMA算法和AprioriAll算法
  18. fedora下如何使用希网DDNS
  19. 如何提出保存PDF指定的几页
  20. Android签名证书 keystore jks pem x509

热门文章

  1. 寻仙服务器要维护多久,新寻仙正式服5.2.62.1版本更新公告
  2. 广州的11个辖区_重庆前三季度GDP反超广州,这对两城到底意味着什么?
  3. JVM专题之垃圾回收器
  4. 不同网段Linux通过路由表,Linux服务器架设---《路由表配置,实现不同网段不同网卡之间的ping...
  5. (69)FPGA模块调用(system Verilog调用Verilog)
  6. (03)System Verilog 常用数据类型详解
  7. RTT学习笔记6-内存管理
  8. 21 Qt中ui设计中的一些小知识点
  9. Linux设备树相关函数
  10. oracle权限不足的报错,Oracle Scott创建视图权限不足解决办法