lombok简单介绍和使用

原创
2017/03/12 23:15
阅读数 142

lombok简单介绍和使用

lombok 是什么

Lombok是一个简化Java源码的工具, 通过注解, 可以在编译源码的时候生成对应的方法.

示例: 下面这个类, 只加了@Data注解, 从左侧的结构图上, 就可以看到自动生成了getter, setter,toString等方法.

lombok示例

原理

JSR 269 - 编译时根据 annotation 生成代码. 不过因各个版本 jvm 不一致等原因, 为了对其兼容, lombok 除了使用 JSR 269 的功能以外, 使用了一些 hack 技术.

参考: https://stackoverflow.com/questions/6107197/how-does-lombok-work

另外一个使用 JSR 269 的有趣工具: MapStruct, 用于高性能的 bean 转化.

lombok 如何用

以IDEA为例, eclipse也有对应的方法.

  1. 确认安装了lombok插件
    • Preferences -> Plugins
    • Search for "Lombok Plugin"
    • Click Browse repositories...
    • Choose Lombok Plugin
    • Install
    • Restart IntelliJ
  2. maven pom 文件中引入依赖(自己修改引入版本)
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.12</version>
</dependency>
  1. 尽情享受吧

小缺憾

IDE里面需要装个插件才能用. 你需要荣幸的告诉团队里面的每个人装个插件, 代码可以变得清爽. 对于古董级玩家可能不是很想改变, 那就让他们带有编译错误吧!

lombok常用的方法

@Getter

自动给所有字段生成getter方法

@Setter

自动给所有非 final 字段生成setter方法

@Data

自动生成了getter,setter,hashcode,equals等方法

@Slf4j

自动生成一个log对象, 相当于类里面加了一个log对象:

 public class LogExample {
     private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
 }

@SneakyThrows

骗过编译器, 检查异常也不必抛出.

例如下面这段代码可以简化为后面的代码(两个代码有细微的区别, 可以忽略):

public void run() {
  try {
    throw new Exception();
  } catch (Exception exception) {
    throw new RuntimeException(exception);
  }
}

简化为:

@SneakyThrows
public void run() {
  throw new Exception();
}
展开阅读全文
加载中

作者的其它热门文章

打赏
1
2 收藏
分享
打赏
0 评论
2 收藏
1
分享
返回顶部
顶部