将 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?
假设我有以下 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}
这是不可能的。
在运行时,
What is the concept of erasure in generics in Java?