首页 > 解决方案 > 杰克逊的“Visibility.Any”表演

问题描述

将 Jackson 与 Lombok 一起使用@Accessors(fluent=true)需要添加@JsonAutoDetect(Visibility.Any)注释:

@Data
@NoArgsConstructor
@Accessors(fluent=true)
public class Pojo{
  private String fieldOne;
  private String fieldTwo;
}

我很好奇 的表现Visibilty.Any。它是否使用反射或添加了编译时挂钩?

标签: javaperformancereflectionjacksonlombok

解决方案


Jackson无论如何都使用反射和缓存来实现序列化和反序列化过程。使用此注释不会增加任何明显的性能成本。有关更多信息,请查看它是如何实现的:JsonAutoDetect.java。它允许您更改字段、getter、setter、创建者和构造函数的默认可见性配置。


推荐阅读