一. 前言

当属性多时会出现大量的 getter/setter 方法,冗余,且一旦修改属性,就需要修改对应的方法。会耗费大量的时间,也会影响美观,Lombok因此诞生,目的是让java变得简洁,快速。

Lombok 可以提高开发效率。


二. Lombok使用

1)引入相应的Maven包

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

2)在idea中下载Lombok插件

在idea的setting设置中的plugins,搜索lombok插件,下载完后,会让你重启idea,重启idea就可以了.

注意:idea 2020最后一个版本及以后,已经内置了Lombok插件,无需下载。


三. 常用方法

lombok使用过程中主要是靠注解起作用的,官网上的文档里面有所有的注解,这里不一一罗列,只说明其中几个比较常用的。

@Setter @Getter 生成 get、set 方法

使用lombok:

import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
public class GetterSetterExample {@Getter @Setter private int age = 10;@Setter(AccessLevel.PROTECTED) private String name;
}

不使用lombok:

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

@NonNull: 可以帮助我们避免空指针。

使用lombok:

import lombok.NonNull;public class NonNullExample extends Something {private String name;  public NonNullExample(@NonNull Person person) {super("Hello");this.name = person.getName();}
}

不使用lombok:

public class NonNullExample extends Something {private String name;  public NonNullExample(@NonNull Person person) {super("Hello");if (person == null) {throw new NullPointerException("person");}this.name = person.getName();}
}

@Cleanup: 自动帮我们调用close()方法。

使用lombok:

import lombok.Cleanup;
import java.io.*;
public class CleanupExample {public static void main(String[] args) throws IOException {@Cleanup InputStream in = new FileInputStream(args[0]);@Cleanup OutputStream out = new FileOutputStream(args[1]);byte[] b = new byte[10000];while (true) {int r = in.read(b);if (r == -1) break;out.write(b, 0, r);}}
}

不使用lombok:

import java.io.*;public class CleanupExample {public static void main(String[] args) throws IOException {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();}}}
}

此外还有:

  • @NoArgsConstructor @AllArgsConstructor 生成无参、全参构造器
  • @ToString 生成toString方法,
  • @Data 生成get、set、toString等所有常用方法。

以上就是Lombok常用的方法了,记住这些就可以适用99%的场景了。

Lombok介绍、附比较好用的几种注释推荐相关推荐

  1. wow mysql dbc_DBC中悲观锁介绍附案例详解

    DBC中悲观锁介绍附案例详解 了解下DBC中悲观锁: 代码如下: BDUtils 工具类: package JDBC; import java.sql.*; public class BDUtils ...

  2. Lombok介绍、使用方法和总结

    1 Lombok背景介绍 官方介绍如下: Project Lombok makes java a spicier language by adding 'handlers' that know how ...

  3. Cozmo人工智能机器人玩具/教具完整版中文说明书和介绍(附应用下载链接)

    Cozmo(Anki)人工智能AI机器人Robot完整版中文说明书和介绍 (附应用下载链接)https://download.csdn.net/download/zhangrelay/10854427 ...

  4. C++基础学习(01)--(介绍,环境配置,基本语法,注释)

    文章目录 目录 一. c++介绍 二. c++开发环境到的配置 三. c++基本语法 四. c++注释 目录 一. c++介绍 C++ 是一种静态类型的.编译式的.通用的.大小写敏感的.不规则的编程语 ...

  5. 简单介绍下去掉虚线框的几种方式

    最新简单介绍下去掉虚线框的几种方式 以下是三零网为大家整理的最新简单介绍下去掉虚线框的几种方式的文章,希望大家能够喜欢! 1.CSS样式表的outline属性(IE9.FF等浏览器推荐)  对于最新的 ...

  6. BaiduMap---百度地图官方Demo之路径规划功能(介绍公交,驾车和步行三种线路规划方法和自设路线方法)

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  7. (附源码)计算机毕业设计SSM基于推荐算法的鞋服代购平台

    (附源码)计算机毕业设计SSM基于推荐算法的鞋服代购平台 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe( ...

  8. TFTP协议(1)TFTP协议介绍(包括:TFTP的五种报文/报文字段扩展/TFTP的流量控制,差错控制/UDP sendto,recvfrom接口)

    TFTP协议(1)TFTP协议介绍(包括:TFTP的五种报文/报文字段扩展/TFTP的流量控制,差错控制/UDP sendto,recvfrom接口) 1. TFTP协议 1.1 TFTP 背景 1. ...

  9. Lombok 介绍和使用详情

    介绍 在项目中使用Lombok可以减少很多重复代码的书写.比如说getter/setter/toString等方法的编写. IDEA中的安装 打开IDEA的Setting –> 选择Plugin ...

最新文章

  1. DedeCMS(织梦)安全设置经验分享
  2. Java并发编程-并发工具包java.util.concurrent使用指南
  3. 洛谷——P1540 机器翻译
  4. 无心剑英译朱自清《匆匆》
  5. 【Python3】【爬虫】meizituSpider
  6. HTML:常用特殊字符编码表(自用)
  7. 原生js制作PC端轮播图
  8. 视频教程-网络工程师实战系列视频课程【VLAN专题】-网络技术
  9. MySQL怎么打开explain_MySql性能加速分析以及PHPMYADMIN中explain用法
  10. 腾讯云,实现图片上传
  11. matebook13、14 C盘扩展
  12. 如何关闭伽卡他卡的开机自启
  13. 870-Linux下解决高并发socket最大连接数限制
  14. 华为matebook13安装折腾Debian11全过程
  15. 在微软工作365天,还你一个我眼中更加真实的微软
  16. 1730: 珠心算测验
  17. LeetCode(89)GrayCode
  18. 微商城之业务逻辑架构设计,B2B2C模式流程设计-OctShop免费开源商城系统
  19. 机器人编程学的是什么
  20. Java 生成随机中文、英文姓名(下)

热门文章

  1. 视频质量评价:挑战与机遇
  2. Hulu:如何实现大型比赛直播系统自动扩容
  3. linux下多种锁的比较
  4. 一通电话被骗走4年生活费,她决定用技术守护千万用户
  5. Redis vs Tendis:冷热混合存储版架构揭秘
  6. FLV封装格式分析器
  7. C++封装、继承、多态
  8. 互斥锁属性PTHREAD_MUTEX_RECURSIVE
  9. svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted
  10. 各大券商进军人工智能 业内人士:应多措并举促发展