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. 详解Azure的权限控制

    注意:本文档仅限于Azure国际版,国内版略有不同   Azure中的角色分配相对来说是比较复杂的的,对于任何云组织来说,云的资源访问管理权限都是一项非常重要的功能,azure中的授权系统叫做基于角色 ...

  2. Preventing CSRF With Ajax

    https://stackoverflow.com/a/24394578/3782855 You don't need the ValidationHttpRequestWrapper solutio ...

  3. lnmp新增https访问【转】

    环境是使用lnmp一键安装包搭建的: 1 首先去这个网站下载证书:免费ssl证书 最终会得到两个文件 2:在/usr/local/nginx/conf创建cert目录把这两个文件放进去,这个地址后面有 ...

  4. winddows rabbitmq安装与配置

    RabbitMQ是一个在AMQP协议标准基础上完整的,可复用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rab ...

  5. linux下phpmailer发送邮件出现SMTP ERROR: Failed to connect to server: (0)错误

    转自:https://www.cnblogs.com/raincowl/p/8875647.html //Create a new PHPMailer instance $mail = new PHP ...

  6. leetcode 11. Container With Most Water 、42. Trapping Rain Water 、238. Product of Array Except Self 、407. Trapping Rain Water II

    11. Container With Most Water https://www.cnblogs.com/grandyang/p/4455109.html 用双指针向中间滑动,较小的高度就作为当前情 ...

  7. RestSHarp

    异步扩展: public static class RestClientExtensions { private static Task<T> SelectAsync<T>(t ...

  8. realsense SDK编译 debug

    1>------ 已启动全部重新生成: 项目: ZERO_CHECK, 配置: Debug x64 ------1> Checking Build System1> CMake do ...

  9. 003——angular 组件 以及组件里面的模板

    创建组件: ng g component components/news 一.创建 angualr 组件................................................ ...

  10. 【笔记】第六章、Linux 的文件权限与目录配置

    Linux的每个文件中,依据权限分为使用者.群组与其他人三种身份: 群组最有用的功能之一,就是当你在团队开发资源的时候,且每个账号都可以有多个群组的支持: 利用ls -l显示的文件属性中,第一个字段是 ...