将 Jackson 与泛型一起使用

Using Jackson with generic types

假设我有以下 class:

public class Sample<T> {
    private String smth;
}

我需要 "smth" 属性 的名称取决于泛型类型。例如:Sample<String>应该变成{"string":value}Sample<Integer>应该变成{"int":value}

我尝试使用 Jackson MixIn,但它只能应用于具体的 class(非通用)

谁能提出一些解决办法?

这个问题叫做擦除

如果您有此代码

Sample<String> mysample = ...

并想在 {"string":value}

中转换 mysample

这是不可能的。

在运行时, 信息不可用。这叫做擦除。

What is the concept of erasure in generics in Java?

Effects of Type Erasure and Bridge Methods