当我只给出一个字符串时,如何从带有泛型的Java类生成JSON模式?

时间:2014-08-08 15:28:45

标签: java json generics jackson type-erasure

我正在开发一个项目,我需要为从我的API返回的所有对象生成JSON模式。

我得到一个字符串,如:

"com.example.CustomListing<MyClass>"

我的目标是为CustomListing创建一个架构,并在$ref中使用MyClassCustomListing的所有位置插入Class<CustomListing<MyClass>>

Jackson提供了一种从泛型here创建模式的方法,但我需要为该泛型类型设置Class对象。

我可以使用方法here创建一个通用的Class对象,但它需要我提前知道类型,我不知道。

当我只获得字符串"com.example.CustomListing<MyClass>"时,如何获得{{1}}?


编辑:我在JavaDoc doclet中创建这些模式,所以我在编译时工作,因此有限制。

1 个答案:

答案 0 :(得分:0)

我想我找到了解决问题的方向。我正在使用Jackson的ObjectMapper,它允许我配置模块来处理任何给定的类型。我相信我可以注册一些来处理通用(例如<T>),并且知道在这种情况下<T>会引用MyClass而是插入$ref