【发布时间】:2019-06-13 00:53:24
【问题描述】:
我正在尝试利用 Lombok 的新 copyableAnnotations 功能,以便将诸如 @JsonIgnore 和 @JsonValue 之类的 Jackson 注释复制到生成的 getter/wither 方法中。该博客似乎表明这应该可行:https://www.thecuriousdev.org/lombok-builder-with-jackson/。但是,当我尝试这个时,我只是得到“错误:注释类型不适用于这种声明”(指向我的 value 字段)。为什么这不起作用,我该如何使它起作用?也许我误解了这个功能应该如何工作。我正在使用 lombok 1.18.8。
model.java:
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Value;
import javax.validation.constraints.NotNull;
@Value
public class BrandId implements ValueObject<Long> {
@JsonCreator
public static BrandId of(final Long value) {
return new BrandId(value);
}
@NotNull
@JsonValue
private Long value;
}
lombok.config:
config.stopBubbling = true
lombok.copyableAnnotations += com.fasterxml.jackson.annotation.JsonIgnore
lombok.copyableAnnotations += com.fasterxml.jackson.annotation.JsonProperty
lombok.copyableAnnotations += com.fasterxml.jackson.annotation.JsonValue
【问题讨论】: