註解類型 Jacksonized
@Jacksonized
註解是 @
Builder
和 @
SuperBuilder
的附加註解。它會自動配置產生的 builder 類別,以便 Jackson 的反序列化使用。只有在同時存在 @Builder
或 @SuperBuilder
的情況下才會生效;否則會發出警告。具體來說,此註解會執行以下操作
- 配置 Jackson 以使用 builder 進行反序列化,方法是在類別上使用
@JsonDeserialize(builder=Foobar.FoobarBuilder[Impl].class)
(其中 Foobar 是被註解的類別名稱)。 - 將 Jackson 相關的配置註解 (例如
@JsonIgnoreProperties
) 從類別複製到 builder 類別。這是必要的,以便 Jackson 在使用 builder 時能夠識別它們。 - 在產生的 builder 類別上插入
@JsonPOJOBuilder(withPrefix="")
,以覆寫 Jackson 的預設前綴 "with"。如果您在 lombok 中使用setterPrefix
配置了不同的前綴,則會使用此值。如果您使用buildMethodName
變更了build()
方法的名稱,這也會告知 Jackson。 - 對於
@SuperBuilder
,使 builder 實作類別成為 package-private。
@Jacksonized
@SuperBuilder
仍然與常規的 @SuperBuilder
完全相容。