作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在处理 Lombok 和 Jackson 时遇到了非常奇怪的问题。以下是我正在处理的一段代码。
@Getter
@Setter
@NoArgsConstructor
@XmlRootElement
public class Order{
//@JsonIgnore
@Getter(onMethod = @__(@JsonIgnore))
private boolean userPresent;
}
所以我想要的是,这个 dto 应该序列化为 Json 然后这个 userPresent 属性不应该作为响应属性出现。我虽然@JsonIgnore 会为我工作。但我认为这是 Lombok 的一些问题,根据 https://stackoverflow.com/a/57119494/2111677文章。然后我改变了使用 OnMethod 的方法。
现在,在 eclipse 上编译非常好,但是当我尝试使用 mvn 进行编译时,它给了我以下错误。
当它不能与 maven 一起工作时,有人可以帮我解决这个问题。
最佳答案
@__
样式适用于 javac7。对于 javac8+,你必须使用这个变体:
@Getter(onMethod_=@JsonIgnore)
但是,在字段、getter 或 setter 上使用 @JsonIgnore
注释就足够了。如果它至少出现在其中一个上,则在(反)序列化期间将完全忽略整个“虚拟属性(property)”。因此,如果这是您想要的,则不需要 onMethod_
。
如果你想让它只在序列化时被忽略,而不是在反序列化时,你必须在setter上添加一个@JsonProperty
:
@JsonIgnore
@Setter(onMethod_=@JsonProperty)
private boolean userPresent;
关于maven - JsonIgnore 注释不适用于 Lombok,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61114345/
我是一名优秀的程序员,十分优秀!