zoukankan      html  css  js  c++  java
  • Lombok

    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

    参考资料:

  • 相关阅读:
    构造函数
    时延(delay,latency)
    吞吐量
    带宽(band-width)
    单位
    bps
    比特(bit)
    速率
    C语言中的“>>”和“<<”
    C#中unit
  • 原文地址:https://www.cnblogs.com/zhangyangdev/p/13504849.html
Copyright © 2011-2022 走看看