lombok使用時一些注意事項

2021-10-14 04:10:12 字數 2299 閱讀 9029

**lombok常用註解:**

@data: 自動生成get,set,tostring,equals,hashcode方法

@allargsconstructor: 有參構造

@noargsconstructor: 無參構造

@equalsandhashcode(callsuper = true) :在生成equals,hashcode方法時,把繼承的父類成員變數也包含在內, 在子類中使用

@tostring(callsuper = true): 在生成tostring方法時,把把繼承的父類成員變數也包含在內,在子類中使用

@builder: 在沒有繼承的父類時生效,

@superbuilder:在繼承父類時,父類和子類同時使用,才會生效

舉例說明

首先建立2個類(student, person)

@superbuilder

@data

@allargsconstructor

@noargsconstructor

@equalsandhashcode

(callsuper =

true

)@tostring

(callsuper =

true

)public

class

student

extends

person

@superbuilder

@data

@allargsconstructor

@noargsconstructor

public

class

person

在使用@superbuilder和@builder後,我們在建立物件時會更加簡明, 告別setter方法

@builder:構造物件時只有本類的成員變數,沒有父類的成員變數

student student = student.

builder()

.name

("楊冪").

age(22)

.build()

;

@superbuilder: 構造物件時本類的成員變數和父類的成員變數都包含; 注意:子類和父類同時加@superbuilder才會生效

student student = student.

builder()

.***

("女").

name

("楊冪").

age(22)

.build()

;

在繼承父類時, 子類上必須使用:

@equalsandhashcode(callsuper = true)

@tostring(callsuper = true)

否則生成equals();hashcode():tostring只有該類的成員變數; 不包含父類的成員變數

子類未使用@equalsandhashcode(callsuper = true)

@tostring(callsuper = true)

@override

public

boolean

equals

(object o)

@override

public

inthashcode()

@override

public string tostring()

';}

子類使用@equalsandhashcode(callsuper = true)

@tostring(callsuper = true)

@override

public

boolean

equals

(object o)

@override

public

inthashcode()

@override

public string tostring()

';}

在繼承父類時推薦子類上使用的註解:

@superbuilder

@data

@allargsconstructor

@noargsconstructor

@equalsandhashcode(callsuper = true)

@tostring(callsuper = true)

一些注意事項

0.解題思路 a.普通思路 b.遞迴 bfs dfs c.動態規劃 比遞迴快 d.雙指標 比for迴圈快 如 快慢指標方法 e.用棧 1.陣列初始化 int a new int 5 a 0 預設為0.二維陣列也一樣。boolean b new boolean 5 b 0 預設為false.strin...

iostream使用時注意事項

標準io庫在3個頭檔案中定義 iostream是從流中讀寫,fstream是從檔案的讀寫,而sstream是從字串中去讀寫。io物件有乙個很重要的特點,就是不能複製或者賦值。這意味兩點 第一,io物件不能儲存在容器中,第二,形參或者函式的返回值也不能是io型別。如果需要傳遞io物件,則需要使用引用。...

Selectors使用時注意事項

1.serversocketchannel和socketchannel必須配置成非阻塞的 2.每次輪詢後,得到selectionkey後,必須從選擇集裡remove掉 iteratorkeys selector.selectedkeys iterator while keys.hasnext 3.如...