@Getter
可選元素:
| 修飾符和類型 | 可選元素 | 描述 |
|---|---|---|
boolean |
lazy |
|
Getter.AnyAnnotation[] |
onMethod |
這里列出的任何注釋都放在生成的方法上。 |
AccessLevel |
value |
如果你想讓你的getter不公開,你可以在這里指定一個(gè)替代訪問級(jí)別。 |
使用示例:
@Getter(
lazy = true,
onMethod = @_({@JsonIgnore}),
value = AccessLevel.PROTECTED
)
private final String name = "";
說明:
Lazy:默認(rèn)為:
false,如果設(shè)置 lazy 則 該屬性必須為 final-
onMethod:默認(rèn)為
{},此處出現(xiàn)的注解會(huì)在生成的方法上面,最常見的使用是結(jié)合JackJson,做序列化標(biāo)注- JDK7-:
@Getter(onMethod=@__({@AnnotationsGoHere})) - JDK8+:
@Getter(onMethod_={@AnnotationsGohere})//注意后面的下劃線onMethod
- JDK7-:
-
AccessLevel:默認(rèn)為
AccessLevel.PUBLIC可以手動(dòng)修改方法的訪問級(jí)別,配置參數(shù)為 枚舉類:AccessLevel中屬性?
@Setter
可選元素
| 修飾符和類型 | 可選元素 | 描述 |
|---|---|---|
Setter.AnyAnnotation[] |
onMethod |
這里列出的任何注釋都放在生成的方法上。 |
Setter.AnyAnnotation[] |
onParam |
這里列出的任何注釋都放在生成的方法參數(shù)上。 |
AccessLevel |
value |
如果你希望你的setter是非公開的,你可以在這里指定一個(gè)替代訪問級(jí)別。 |
使用示例:
@Setter(value = AccessLevel.PRIVATE)
private String trueName;
說明:
該屬性配置和
@Getter經(jīng)常結(jié)合使用-
onParam:該屬性為參數(shù)的注解,此處可以和@NotNull配合使用控制參數(shù)不為空,該屬性配置同onMethod?
@NonNull
可選元素:無
使用示例:
@NonNull private String trueName;
private String getTrueName(@NonNull String name)
說明:
- 該注解可以用在 字段、方法、參數(shù) 上 常見用于 字段 和 參數(shù)
- 如果是字段注解,那么生成的
get、構(gòu)造方法 都會(huì)進(jìn)行 null 檢測 - 如果是參數(shù)注解,在方法的開頭會(huì)加入一個(gè)空值檢測。
- 該注解檢測到空值后會(huì)拋出
NullPointerException
@ToString
可選元素
| 修飾符和類型 | 可選元素 | 描述 |
|---|---|---|
boolean |
callSuper |
toString在輸出中包含超類實(shí)現(xiàn)的結(jié)果。 |
boolean |
doNotUseGetters |
通常情況下,如果 getters是可用的,那么被調(diào)用。 |
java.lang.String[] |
exclude |
這里列出的任何字段將不會(huì)被打印在生成的toString實(shí)現(xiàn)中。 |
boolean |
includeFieldNames |
在打印時(shí)包括每個(gè)字段的名稱。 |
java.lang.String[] |
of |
如果存在,明確列出要打印的字段。 |
調(diào)用示例:
@ToString(callSuper = true, exclude = {"id"})
@Data
public class TestModel {
private int id;
private String trueName;
}
說明:
- callSuper:默認(rèn)
false - doNotUseGetters:默認(rèn)
false也就是會(huì)調(diào)用 get 方法 - exclude: 默認(rèn)為空
- includeFieldNames:默認(rèn)為
true會(huì)打印字段名稱 - of:默認(rèn)為全部字段,即打印全部字段
@EqualsAndHashCode
可選元素
| 修飾符和類型 | 可選元素 | 描述 |
|---|---|---|
boolean |
callSuper |
調(diào)用超類的實(shí)現(xiàn)equals,并hashCode計(jì)算對(duì)該類中的字段值。 |
boolean |
doNotUseGetters |
通常情況下,如果getter是可用的,那么被調(diào)用。 |
java.lang.String[] |
exclude |
這里列出的任何字段在生成equals和hashCode實(shí)現(xiàn)中都不會(huì)被考慮在內(nèi)。 |
java.lang.String[] |
of |
如果存在,則明確列出要用于身份的字段。 |
EqualsAndHashCode.AnyAnnotation[] |
onParam |
這里列出的任何注釋都放在的生成的參數(shù)equals和canEqual。 |
調(diào)用示例
@EqualsAndHashCode
public class TestModel {
private int id;
private String trueName;
}
說明:
callSuper:默認(rèn)falsedoNotUseGetters:默認(rèn)false也就是會(huì)調(diào)用 get 方法exclude:默認(rèn)為空of:默認(rèn)為全部字段-
onParam:該注解用以 在傳入的Object object參數(shù)注解?
@AllArgsConstructor
可選元素
| 修飾符和類型 | 可選元素 | 描述 |
|---|---|---|
AccessLevel |
access |
設(shè)置構(gòu)造函數(shù)的訪問級(jí)別。 |
AllArgsConstructor.AnyAnnotation[] |
onConstructor |
這里列出的任何注釋都放在生成的構(gòu)造函數(shù)中。 |
java.lang.String |
staticName |
如果設(shè)置,生成的構(gòu)造函數(shù)將是私有的,并且用包裝真實(shí)構(gòu)造函數(shù)的相同參數(shù)列表生成額外的靜態(tài)“構(gòu)造函數(shù)”。 |
說明:生成一個(gè)全指標(biāo)構(gòu)造函數(shù)。全參數(shù)構(gòu)造函數(shù)需要類中每個(gè)字段的一個(gè)參數(shù)。
@NoArgsConstructor
可選元素
| 修飾符和類型 | 可選元素 | 描述 |
|---|---|---|
AccessLevel |
access |
設(shè)置構(gòu)造函數(shù)的訪問級(jí)別。 |
boolean |
force |
如果true,將所有最終字段初始化為0 / null / false。 |
NoArgsConstructor.AnyAnnotation[] |
onConstructor |
這里列出的任何注釋都放在生成的構(gòu)造函數(shù)中。 |
java.lang.String |
staticName |
如果設(shè)置,生成的構(gòu)造函數(shù)將是私有的,并且用包裝真實(shí)構(gòu)造函數(shù)的相同參數(shù)列表生成額外的靜態(tài)“構(gòu)造函數(shù)”。 |
說明:生成一個(gè)無參數(shù)的構(gòu)造函數(shù)。如果由于final字段的存在而無法寫入這樣的構(gòu)造函數(shù),將會(huì)生成錯(cuò)誤消息。
@RequiredArgsConstructor
可選元素
| 修飾符和類型 | 可選元素 | 描述 |
|---|---|---|
AccessLevel |
access |
設(shè)置構(gòu)造函數(shù)的訪問級(jí)別。 |
RequiredArgsConstructor.AnyAnnotation[] |
onConstructor |
這里列出的任何注釋都放在生成的構(gòu)造函數(shù)中。 |
java.lang.String |
staticName |
如果設(shè)置,生成的構(gòu)造函數(shù)將是私有的,并且用包裝真實(shí)構(gòu)造函數(shù)的相同參數(shù)列表生成額外的靜態(tài)“構(gòu)造函數(shù)”。 |
說明:生成一個(gè)具有所需參數(shù)的構(gòu)造函數(shù)。必需的參數(shù)是final和約束的字段,如@NonNull。
@Data
可選元素
| 修飾符和類型 | 可選元素 | 描述 |
|---|---|---|
java.lang.String |
staticConstructor |
如果你指定一個(gè)靜態(tài)構(gòu)造函數(shù)名,那么生成的構(gòu)造函數(shù)將是私有的,而創(chuàng)建一個(gè)靜態(tài)工廠方法,其他類可以用來創(chuàng)建實(shí)例。 |
說明:
相當(dāng)于
@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode。為所有字段生成getter,一個(gè)有用的toString方法,以及hashCode和equals實(shí)現(xiàn),用于檢查所有非瞬態(tài)字段。還將為所有非final字段以及構(gòu)造函數(shù)生成setter。
-
staticConstructor:默認(rèn):沒有靜態(tài)構(gòu)造函數(shù),而是普通的構(gòu)造函數(shù)是公共的。如果你指定一個(gè)靜態(tài)構(gòu)造函數(shù)名,那么生成的構(gòu)造函數(shù)將是私有的,而創(chuàng)建一個(gè)靜態(tài)工廠方法,其他類可以用來創(chuàng)建實(shí)例。建議這個(gè)名字:“of”,就像這樣:public @Data(staticConstructor =“of”)類Point {final int x,y; }.?