背景
lombok原理,幾個常用的 lombok 注解:
@Data:注解在類上;提供類所有屬性的 getting 和 setting 方法,此外還提供了equals、canEqual、hashCode、toString 方法
@Setter:注解在屬性上;為屬性提供 setting 方法
@Getter:注解在屬性上;為屬性提供 getting 方法
@SneakyThrows:無需在簽名處顯式拋出異常
@Log4j:注解在類上;為類提供一個 屬性名為log 的 log4j 日志對像
@Slf4j: 同上
@NoArgsConstructor:注解在類上;為類提供一個無參的構造方法
@AllArgsConstructor:注解在類上;為類提供一個全參的構造方法
實現原理:
Lombok不是通過字節碼改寫來實現的。
它主要是用編譯器內支持的annotation processing,直接操縱抽象語法樹(AST),根據需要添加新節點。
(講真的,不太懂,java基礎不是太好,這一段來自https://www.jianshu.com/p/d0a68a9b46ae)
使用方法
在pom文件添加
org.projectlombok
lombok
代碼中使用(舉兩個例子,更多的可以看官網api)
@Slf4j使用
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class LogExample {
}
以上將編譯成
public class LogExample {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
}
@Getter使用
private @Getter int foo;
以上將編譯成
public int getFoo() {
return this.foo;
}
在idea中解決代碼中識別錯誤的問題
在idea中添加插件lombok(file->setting->plugins)
如果直接安裝失敗,可以先下載安裝包,然后導入,下載地址:https://github.com/mplushnikov/lombok-intellij-plugin/releases
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态