【问题标题】:Add multiple mixins to one class with Jackson使用 Jackson 将多个 mixin 添加到一个类中
【发布时间】:2023-03-13 06:43:01
【问题描述】:

我必须要挖矿:

@JsonIdentityInfo(generator=ObjectIdGenerators.None.class,
                  property="@id")
public interface NoReferenceMixin {

}
@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS,
              include=JsonTypeInfo.As.PROPERTY,
              property="@class")
public interface FullClassInfoMixin { }

我想将这两个应用到一个特定的类,Thing。看来我只能为每个班级添加一个 Mixin,正如实验所证明的那样,现有的 ObjectMapper.findMixInForClass 返回一个 Class

我尝试过制作一个同时扩展两者的接口:

public interface ThingMixins extends NoReferenceMixin, FullClassInfoMixin { }

findMixInForClass 返回混合,但 FullClassInfoMixin 未应用。 (更难检查是否应用了NoReferenceMixin,我没有检查过。)

这样做的正确方法是什么?

我正在使用杰克逊 2.9.0.pr4

【问题讨论】:

    标签: java json mixins jackson2


    【解决方案1】:

    拥有一个扩展您想要组合的 2 个接口的接口的解决方法应该可行;注释是从整个继承链中的特定 mixin 类中扫描的。

    如果您可以通过简单示例重现问题,则可以针对jackson-databind 提出问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-16
      • 1970-01-01
      • 2015-05-09
      • 1970-01-01
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      相关资源
      最近更新 更多