**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.如...