Lombok - 工具简介:

Lombok是一个编译时注释预处理器,有助于在编译时注入一些代码。Lombok提供了一组在开发时处理的注释,以将代码注入到Java应用程序中,注入的代码在开发环境中立即可用。在详细介绍之前,可以去其官网看一下作者提供的视频,视频中阐述了Lombok 的简单用法。https://projectlombok.org/

Lombok - 安装过程:

基于 Maven:

示例代码:

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

添加好 Maven 依赖之后,就可以在代码中使用 Lombok 的注解来简化代码了。

基于IntelliJ IDEA:

安装 Lombok IntelliJ plugin:

Jetbrains IntelliJ IDEA Editor完全兼容 Lombok,要在 IDEA 中使用 Lombok,那就需要在IntelliJ IDEA 中安装 Lombok IntelliJ plugin 插件,以下为安装步骤:

  • Go to File > Settings > Plugins

  • Click on Browse repositories...

  • Search for Lombok Plugin

  • Click on Install plugin

  • Restart IntelliJ IDEA

具体安装过程可参考官网或者插件 Github 主页。

在IntelliJ IDEA使用Lombok:

  • Go to Refactor > Lombok
  • 在打开的 JavaBean 文件中按照需求添加相应的注解即可。

Lombok - 常用注解:

你如果是使用IDEA的话,在当前文件上按command+F12,或者长按command在左侧找到Structure,就能够看到 lombok 为当前类生成的方法。

  • @Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法

    示例代码:

    import lombok.Data;
    
    @Data
    public class Person {
    private String firstName;
    private String lastName;
    private String job;
    }
  • @Setter/@Getter:注解在属性或类上;为属性提供 Setter/Getter 方法

    示例代码:

    import lombok.Getter;
    import lombok.Setter; // 只为 firstName 生成Getter、Setter 方法
    public class Person {
    @Getter
    @Setter
    private String firstName;
    private String lastName;
    private String job;
    }
    import lombok.Getter;
    import lombok.Setter; @Getter
    @Setter
    public class Person {
    // 为所有字段生成Getter、Setter 方法 private String firstName;
    private String lastName;
    private String job;
    }
  • @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象

  • @Value:此注解集@equals()、@hashCode()、@toString()、@Getter()于一身。

    示例代码:

    import lombok.Value;
    import lombok.experimental.NonFinal; @Value
    public class Person {
    /** 类本身以及类中所有的字段都是private final类型的,不会生成Setter方法。
    * 可以通过显式指定某个注解覆盖掉默认的属性。
    * 通过@NonFinal注解修饰的字段,不是final类型的。
    */
    String firstName; String lastName;
    @NonFinal
    String job;
    }
  • @NoArgsConstructor/@AllArgsConstructor: 自动生成无参数构造函数/全参构造函数。

    示例代码:

    import lombok.AllArgsConstructor;
    import lombok.NoArgsConstructor; @NoArgsConstructor
    @AllArgsConstructor
    public class Person {
    private String firstName; private String lastName; private String job;
    }
  • @NonNull :修饰方法、构造函数的参数或者类字段,Lombok自动生成一个非空检测语句。

    示例代码:

    import lombok.NonNull;
    
    public class Person{
    public String Example(@NonNull String sum){ return null;
    }
    }
  • @Synchronized 将方法变成同步方法

  • @SneakyThrows:将受检异常转换为非受检异常,避免抛出或尝试语句。

lombok 项目官网上还有一些其他注解的用法,此处就不列举了,附链接:https://projectlombok.org/features/all

参考资料:

Lombok - 使用注解让你的JavaBean变得更加简洁的更多相关文章

  1. eclipse 按装lombok与注解说明

    原文:http://www.cnblogs.com/ywqbj/p/5711691.html 一.安装lombok 1.下载   lombok-1.16.16.jar 包 我的下载完后放到:/root ...

  2. 来自lombok的注解(解决idea中的找不到get,set方法,找不到log的问题)

    今天看代码,发现idea报错,仔细一看调用的get,set方法bean中都没有,但是运行起来却没有问题,这个让我很疑惑.后来发现在类上有一个以前没见过的注解@Data,大概就是因为有他的原因.这个注解 ...

  3. lombok常用注解@Data@AllArgsConstructor@NoArgsConstructor@Builder@Accessors

    原贴:https://blog.csdn.net/ChenXvYuan_001/article/details/84961992 https://blog.csdn.net/weixin_382293 ...

  4. 20190905 Lombok常用注解

    Lombok常用注解 val 用于声明类型,将从初始化表达式推断出类型,仅适用于局部变量和foreach循环,而不适用于字段.声明的局部变量为final变量. Java自带类型推断随着JDK版本提升越 ...

  5. lombok常用注解

    简介: Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率.例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器.equ ...

  6. Lombok 常用注解

    Lombok Lombok 能以简单的注解形式来简化 java 代码,提高开发人员的开发效率.例如开发中经常需要写的 javaBean,都需要花时间去添加相应的 getter/setter,也许还要去 ...

  7. Eclipse - 安装lombok后注解无效

    安装 lombok lombok 的安装过程挺简单的,网上已经有很多相关的博客,这里就不在多说了,可以参考这篇:eclipse集成lombok注解不起作用 但是我按照网上的方式安装之后,注解一直不起作 ...

  8. lombok @EqualsAndHashCode 注解讲解

    官方文档:@EqualsAndHashCode 原文中提到的大致有以下几点: 1. 此注解会生成equals(Object other) 和 hashCode()方法. 2. 它默认使用非静态,非瞬态 ...

  9. 第三方工具系列--Lombok常用注解

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9329798.html Lombok注解解析: @NonNull 使用在方法的参数或者构造 ...

随机推荐

  1. 【洛谷】P3177 [HAOI2015]树上染色

    懒得复制题面了直接传送门吧 分析 直接求点与点之间的距离感觉不是很好求,所以我们考虑换一个求法. 瞄了一眼题解 距离跟路径上边的长度有关,所以我们直接来看每一条边的贡献吧(这谁想得到啊) 对于每一条边 ...

  2. Zk单机多实例部署

    一.环境准备 当前环境:centos7.3一台软件版本:zookeeper-3.5.2部署目录:/usr/local/zookeeper启动端口:2181,2182,2183配置文件:/usr/loc ...

  3. mysql 开放端口 外网访问

    mysql 开放端口 外网访问 作者: moyixi 时间: April 24, 2018 分类: 默认分类,数据库,mysql 前提: 如果是云服务器,请先把安全组件相应的开发 查看服务器的端口33 ...

  4. ubuntu之路——day11.3 不匹配数据划分的偏差和方差

    在11.2中,我们提到了一种数据划分的方法,那么怎么衡量这种数据划分方法中的误差呢? 来看一个例子:有20w条各种领域的语音识别数据,2w条汽车语音定位数据 train+dev+test,其中trai ...

  5. 性能分析 函数粒度 函数里的一条语句 汇编 反编译 机器指令 %rbx,%rbp

    在Linux下做性能分析3:perf - 知乎 https://zhuanlan.zhihu.com/p/22194920 Linux Perf 性能分析工具及火焰图浅析 - 知乎 https://z ...

  6. iftop -i eth0 -B -F

    iftop -i eth0 -B -F 108.51.5.220 1 https://www.cnblogs.com/kobexffx/p/11000337.html

  7. 算法的时间复杂度O

    一.时间复杂度 在进行算法分析时,语句总的执行次数 T(n) 是关于问题的规模n 的函数,进而分析 T(n) 随 n 的变化情况并确定 T(n) 的数量级,算法的时间复杂度,也就是算法的时间度量,记作 ...

  8. Android中jsoup的混淆规则【转】

    Android中jsoup的混淆规则版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com 说实话这篇文章的标题和内容我觉得很水,所以读者们要是也觉得这篇文章 ...

  9. CRM 线索 客户 统称为 资源 客户服务管理篇 销售易

    线索 客户 统称为 资源 - 国内版 Binghttps://cn.bing.com/search?FORM=U227DF&PC=U227&q=%E7%BA%BF%E7%B4%A2+% ...

  10. selenium grid用法

    一,selenium grid是什么? selenium是一个用于UI自动化测试的工具. selenium grid是selenium家族中的三大组件的一员.selenium grid有两个版本,gr ...