为了减少写一些 get/set/toString 方法,让项目代码更加整洁,提高开发效率,发现大家都开始采用 Lombok 这个工具。Lombok 是一个 Java 类库,它会自动插入编辑器和构建工具,用于帮助开发人员消除 Java 中冗长样板代码。而我们开发人员所要做的,仅仅是添加几个 Lombok 中的注解,就可以替换掉原来的多行 get/set/toString 方法代码,既简洁也易于维护。下面我们就来看看,如何安装并使用这一工具。
安装 Lombok日常开发中,相信大多数人现在使用的都是 IDEA 这个 Java 神器了,如果你还在使用 Eclipse 或者 MyEclipse 等工具,那强烈推荐你去体验一把 IDEA,相信你一用上它就会爱上他它的强大!下面我就一在 IDEA 中使用 Lombok 为例,看看如何安装并使用它。
在先前 IDEA 的版本中,Lombok 是需要通过插件来安装的,安装方法如下:依次进入File -> Settings -> Plugins,然后搜索 Lombok ,最后进行安装即可。而在新版本的 IDEA 中,Lombok 已经被集成到 IDEA 中,我们不用再去安装它就可以直接使用,可以说是十分方便了。
老版本 IDEA 安装 Lombok
新版本中集成了 Lombok
以上就是 Lombok 的安装过程了,是不是十分简单?那接下来我们就来看看,如何在我们的项目中使用 Lombok!
Lombok 使用现在大家进行项目管理时用的工具大多应该都是 Maven,所以我们直接在需要使用 Lombok 的项目中加入 Lombok 编译支持,也就是在 pom.xml 文件中加入以下依赖。
导入相关依赖之后,接下来就是具体使用过程了。
具体使用在需要的实体类中引入相关注解即可,只不过注解不同它们所对应的功能也不同,而且同一个注解可能在不同位置的功能也不一样。如下图;
常用注解@Data
注解在 类 上:给类的所有属性提供 get 和 set 方法,此外还有 equals、canEqual、hashCode、toString 方法以及 默认参数为空的构造方法;
使用前:
使用后:
@Setter
注解在 类 上:为该类所有属性均提供 set 方法,同时提供 默认构造方法;
使用前:
使用后:
注解在 属性 上:为该属性提供 set 方法,同时提供 默认构造方法;
使用前:
使用后:
@Getter
注解在 类 上:为该类所有属性均提供 get 方法,同时提供 默认构造方法;
使用前:
使用后:
注解在 属性 上:为该属性提供 get 方法,同时提供 默认构造方法;
使用前:
使用后:
@ToString
注解在 类 上:生成所有参数的 toString() 方法,同时提供 默认构造方法;
使用前:
使用后:
@Value
注解在 类 上:生成 get 方法,以及 equals、hashCode、toString 方法,同时提供 含所有参数的构造方法;
使用前:
使用后:
@AllArgsConstructor
注解在 类 上:为类提供一个 全参构造方法,但此时不再提供默认构造方法;
使用前:
使用后:
@NoArgsConstructor
注解在 类 上:为类提供一个 无参构造方法;
使用前:
使用后:
@RequiredArgsConstructor
注解在 类 上:使用类中所有带 @NonNull 注解的或带有 final 修饰的成员变量生成对应构造方法;
使用前:
使用后:
@NonNull
注解在 属性 上,自动生成一个关于该参数的非空检查,若参数为 null,则抛出一个空指针异常,同时提供 默认构造方法,具体用法可以参照上面的例子;
@EqualsAndHashCode
注解在 类 上,生成 equals、canEquals、hasnCode 方法,同时会生成默认构造方法;
使用前:
使用后:
@Cleanup
注解在 局部变量 前,保证该变量代表的资源使用后自动关闭,默认调用资源的 close() 方法,若该资源有其它关闭方法,可用 @Cleanup("方法名") 来指定要调用的方法,同时提供 默认构造方法;
使用前:
使用后:
@Synchronized
注解在 类方法 或 实例方法:效果与 synchronized 关键字相同,区别在于锁对象不同,对于类方法和实例方法,synchronized 关键字的锁对象分别是 类的 class 对象和 this 对象,而 @Synchronized 的锁对象分别是 私有静态 final 对象 lock 和 私有 final 对象 lock,也可以自己指定锁对象,同时提供默认构造方法;
使用前:
使用后:
@SneakyThrows
注解在 方法 上:将方法中的代码用 try-catch 语句包裹,捕获异常并在 catch 中用 Lombok.sneakyThrow(e) 将异常抛出,还可以用 @SneakyThrows(Exception.class) 的形式指定抛出异常类型,同时提供 默认构造方法;
使用前:
使用后:
@Log
注解在 类 上:主要用于我们记录日志信息,同时提供 默认构造方法。它封装了多个主流 Log 库,主要有如下几个;
@Log@Slf4jLog4jLog4j2 总结:到此这篇关于Lombok 安装和使用小技巧的文章就介绍到这了,更多相关Lombok 内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!