1. 程式人生 > 其它 ># lombok常用註解的使用 >

# lombok常用註解的使用 >

lombok常用註解的使用

Lombok 是一種 Java 實用工具,可用來幫助開發人員消除 Java 的冗長,尤其是對於簡單的 Java 物件(POJO)。它通過註釋的方式簡化程式碼。

@NonNull

用於判斷方法傳參是否為空
eg:public nonNullMethod(@NonNull Object obj)
判斷引數是否為空,若為空則丟擲異常

@Getter和@Setter

自動建立返回值欄位值與設定欄位值的方法(訪問級別預設為public)
@Getter
private int sid;
相當於
public int getSid(){
	return sid
}
@Setter
private int sid;
相當於
public void setSid(int sid){
	this.sid = sid
}
可以在類和類中的欄位中新增此註解,類上添加註解相當與給類中所有欄位新增。
如果想要自定義方法的訪問基本可以在註解中新增如:@Getter(AccessLevel.privite)
除此之外還可以通過註解@Accessors來配置註解,其中chain引數用的比較多。chain為true時則生成的setter方法返回值為this,為false時setter方法為預設的無返回值void。
配置方法為在類上添加註解@Accessors(chain = true)

@ToString

自動建立返回字串形式的類或者欄位的資料的方法
可以在類和類中的欄位中新增此註解,類上添加註解相當與給類中所有欄位新增。

@EqualsAndHashCode

自動重寫類中的equals(Object obj)和hashCode()方法

@NoArgsConstructor和@AllArgsConstructor

自動建立不帶引數的建構函式和帶有所有欄位的引數的建構函式
@NoArgsConstructor
public class ConstructorTest(){
	private int sid;
}
相當於
public class ConstructorTest(){
	private int sid;
	public ConstructorTest(){}
}

@Data

相當於@Getter、@Setter、@ToString、@EqualsAndHashCode、@NoArgsConstructor註解的集合體
一般資料實體層的類都用這個註解來省去建立的大量程式碼

@Log

一般列印日誌的時候會用到此註解來省去建立的過程
不同的日誌框架由不同的日誌註解建立
@CommonsLog
建立 private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
@Flogger
建立 private static final com.google.common.flogger.FluentLogger log = com.google.common.flogger.FluentLogger.forEnclosingClass();
@JBossLog
建立 private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LogExample.class);
@Log
建立 private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());
@Log4j
建立 private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LogExample.class);
@Log4j2
建立 private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
@Slf4j
建立 private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
@XSlf4j
建立 private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);
@CustomLog
建立 private static final com.foo.your.Logger log = com.foo.your.LoggerFactory.createYourLogger(LogExample.class);
一般@Slf4j註解比較常用

如果想要了解其他註解與配置鍵可以查閱官方文件:https://projectlombok.org/