• Java Lombok


    介绍

    Lombok帮助开发者自动生成getter,setter,toString等样板代码

    配置依赖

        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.18.12</version>
          <!-- 只用于编译,不进行打包 -->
          <scope>provided</scope>
        </dependency>
    

    IDEA插件

    安装插件让IDEA可以识别Lombok注解,防止检查报错。

    常用注解

    IDEA插件下面列出了几乎全部的注解

    @Getter @Setter

    创建getter和setter方法。

    @Getter @Setter
    public class Basic3 {
      private int id;
      private String name;
    
      public static void main(String[] args) {
        Basic3 basic3 = new Basic3();
        basic3.setId(1);
        basic3.setName("Diana");
        System.out.println(basic3.getId());
        System.out.println(basic3.getName());
      }
    }
    

    @ToString

    创建toString方法,同时可以指定包括和不包括哪些字段。

    @ToString
    public class Basic5 {
      private int id;
      private String name;
      @ToString.Exclude private int age;
    
      public static void main(String[] args) {
        Basic5 basic5 = new Basic5();
        System.out.println(basic5);
      }
    }
    

    @RequiredArgsConstructor

    创建带参构造,参数包括所有未初始化的final成员和@NonNull修饰的成员。

    @RequiredArgsConstructor
    public class Basic6 {
      private final int id;
      @NonNull private String name;
      private int age;
    
      public static void main(String[] args) {
        Basic6 basic6 = new Basic6(1, "Diana");
      }
    
    }
    

    @Data

    复合注解:包括@Getter、@Setter、@ToString、@RequiredArgsConstructor和@EqualsAndHashCode

    @Data
    public class Basic2 {
      private final int id;
      private final String name;
      @NonNull private int age;
      private String role;
    
      public static void main(String[] args) {
        Basic2 basic2 = new Basic2(1, "Diana", 18);
        basic2.setRole("admin");
        System.out.println(basic2.getId());
        System.out.println(basic2.getName());
        System.out.println(basic2);
      }
    }
    

    如果已经存在构造器则@Data中的@RequiredArgsConstructor不生效(只能单独打上注解)

    @Data
    @NoArgsConstructor(force = true)
    @RequiredArgsConstructor
    public class Basic {
      private final int id;
      private final String name;
    }
    

    @Slf4j

    自动创建一个Slf4J Logger对象,名称为当前类名。

    // Create
    private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
    
    @Slf4j
    public class Basic4 {
      public static void main(String[] args) {
        log.info("hello {}", "info");
      }
    }
    
  • 相关阅读:
    javaScript系列 [06]-javaScript和this
    javaScript系列 [05]-javaScript和JSON
    javaScript系列 [04]-javaScript的原型链
    javaScript系列 [03]-javaScript原型对象
    javaScript系列 [02]-javaScript对象探析
    javaScript系列 [01]-javaScript函数基础
    jQuery系列 第八章 jQuery框架Ajax模块
    jQuery系列 第七章 jQuery框架DOM操作
    jQuery系列 第六章 jQuery框架事件处理
    jQuery系列 第五章 jQuery框架动画特效
  • 原文地址:https://www.cnblogs.com/Peter2014/p/12767331.html
Copyright © 2020-2023  润新知