java插件小王子Lombok-使用介绍

35次阅读

共计 1697 个字符,预计需要花费 5 分钟才能阅读完成。

java 插件小王子 ->Lombok 使用介绍

本文主要讲述 Lombok 的日常使用 
关于 Lombok 的安装可以看小编的另一篇文章:[https://segmentfault.com/a/1190000022770995](Eclipse 配置 Lombok)

Lombok 了解

java 中对象的实体类中 getter 和 setter toString equals 构造方法等
这些基本的 java 代码你是否早已感到厌倦
虽然有工具强大的快捷键支持但总归还是非常影响我们代码书写的效率和美观的
因此 Lombok 诞生了 Lombok 利用注解的方式便轻松的创建出一些对象类的基本方法
帮助我们消除一些 java 代码的冗长
如果你是第一次认识这个工具我相信你也会有一种想见恨晚的感觉

Lombok 的使用

  • @Data:作用于类上 暴力的生成了以下注解所能生成的方法:@ToString @EqualsAndHashCode @Getter @Setter @RequiredArgsConstructor
  • 如果你不想这么暴力的写法 可以用以下的分步骤来操作
  • @Getter/@Setter:
    作用在类上 为成员属性提供 set、get 方法
    同时利用 value 属性设定方法访问范围

       @Setter(value=AccessLevel.PRIVATE)
       @Getter(value=AccessLevel.PUBLIC)
       class Student{
           private String name;
           private int age;
           private double money;
       }
  • @EqualsAndHashCode:
    作用于类,覆盖默认的 equals 和 hashCode

       @EqualsAndHashCode
       class Student{
           private String name;
           private int age;
           private double money;
       }
  • @ToString:
    作用在类上 覆盖默认 toString 方法
    同时可以用 of 属性限定显示某些字段,通过 exclude 属性排除某些字 段

       @ToString(of= {"name","age"},exclude= {"money"})
       class Student{
           private String name;
           private int age;
           private double money;
       }
  • @NonNull:
    作用于成员变量上 声明属性不能为 null 否则抛出异常

       class Student{
         @NonNull  private String name;
           private int age;
           private double money;
       }
  • @NoArgsConstructor:生成无参构造器
  • @AllArgsConstructor:生成全参构造器
  • @RequiredArgsConstructor:生成被 final 修饰和被 @NonNull 注解的成员变量的构造器

    • ps:他们都有 staticName 和 access 属性
      代表生成静态的构造和通过 access 来设置访问属性

          @NoArgsConstructor(staticName="of",access=AccessLevel.PUBLIC)  
          @AllArgsConstructor  
          class Student{  
          @NonNull private String name;  
          private int age;  
          private double money;  
          }
  • @Log:作用在类上 生成日志变量
  • @Builder:作用在类上 使该类变为建造者模式
  • @Cleanup:
    作用在资源上 可以用于自动关闭像 IO 流这样的资源
  • @Synchronized:
    作用在方法上 可以代替对方法加锁的实现 但是要根据需求使用 小编在使用 Lombok 时 此注解并没有使用过
  • @SneakyThrows:
    作用在方法上 对异常进行抛出 可想而知也不是很常用


此处小编说一句题关于 Lombok 插件的题外话
Lombok 这个插件 我觉得最起码做了很多程序员想做的事 即使他很简单
但是很多人由于插件的配置问题对插件进行一系列的 penpenpen 如下图:

问题难道还不够明显吗 最简单的解决方式不就是 你自己转职或者直接把同事 ds 一顿不好吗 在这里喷插件!自己的能力我看就不用多说了

不想做一个还没有拼搏就死掉了的程序员!!!

正文完
 0