今天看代碼,發現idea報錯,仔細一看調用的get,set方法bean中都沒有,可是運行起來卻沒有問題,這個讓我很疑惑。後來發如今類上有一個之前沒見過的註解@Data,大概就是由於有他的緣由。這個註解來自於lombok。ide
咱們使用lombok的註解時,例如使用@Data,咱們不須要再代碼中再顯示的寫get,set方法等,當咱們使用的時候能夠直接使用註解給咱們生成的get,set方法,可是此時idea是不知道這個註解的做用的,會誤報沒有這個方法,因此你會看到idea瘋了同樣的處處報錯。爲了解決這個問題,咱們須要在idea中安裝插件lombok plugin(直接在idea的prefrences->plugin裏搜索就能夠找到)。安裝完重啓idea問題就解決了。函數
下面咱們來看一下lombok中都有哪些好用的註解ui
@NonNull : 註解在參數上, 若是該類參數爲 null , 就會報出異常, throw new NullPointException(參數名)idea
@Cleanup : 註釋在引用變量前, 自動回收資源 默認調用 close() 方法插件
@Getter/@Setter : 註解在類上, 爲類提供讀寫屬性日誌
@Getter(lazy=true) :實際使用到的時候生成對象
@ToString : 註解在類上, 爲類提供 toString() 方法資源
@EqualsAndHashCode : 註解在類上, 爲類提供 equals() 和 hashCode() 方法get
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor : 註解在類上, 爲類提供無參,有指定必須參數, 全參構造函數同步
@Data : 註解在類上, 爲類提供讀寫屬性, 此外還提供了 equals()、hashCode()、toString() 方法
@Value :@Data相似,區別在於它會把全部成員變量默認定義爲private final修飾,而且不會生成set方法。
@Builder : 註解在類上, 爲類提供一個內部的 Builder
@Synchronized : 註解在方法上, 爲方法提供同步鎖
@Log4j : 註解在類上, 爲類提供一個屬性名爲 log 的 log4j 的日誌對象
@Slf4j : 註解在類上, 爲類提供一個屬性名爲 log 的 log4j 的日誌對象