dna*_*ult 5 java polymorphism json jackson
给定一个任意Class对象,确定向 Jackson 注册的该类的子类型的最佳方法是什么?
例如,这是一个简单的情况,其中类Lion和Penguin是 的子类型Animal:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME)
@JsonSubTypes({
@JsonSubTypes.Type(Lion.class),
@JsonSubTypes.Type(Penguin.class)})
public static abstract class Animal {}
@JsonTypeName("Lion")
public static class Lion extends Animal {}
@JsonTypeName("Penguin")
public static class Penguin extends Animal {}
Run Code Online (Sandbox Code Playgroud)
我梦想的功能如下:
List<Class> getSubTypeClasses(Class c) {...}
Run Code Online (Sandbox Code Playgroud)
getSubTypeClasses(Animal.class)会返回哪里Lion和Penguin.
如果 Jackson API 没有提供获取此信息的便捷方法,我将手动阅读注释,但最好了解与任何 AnnotationIntrospector实现兼容的技术。
小智 3
您ai.findSubTypes(ac)可以使用mapper.getSubtypeResolver().collectAndResolveSubtypes(ac, config, ai). 我还没有使用注册的子类型对其进行测试,但查看了它应该起作用的代码。
| 归档时间: |
|
| 查看次数: |
4688 次 |
| 最近记录: |