为了账号安全,请及时绑定邮箱和手机立即绑定

我想要通用类的“Class<T>”和“Class variable”

我想要通用类的“Class<T>”和“Class variable”

qq_遁去的一_1 2022-12-21 13:04:26
我想为 JsonDeserialize 获取通用类的类型变量。Class Data<T> {  private T data;}Class DataType {  private String dummy;}Class dataTypeClass = DataType.class;// I want get this.Class dataClass = Data<dataTypeClass>.class;我试过这种方法,它不起作用。我可以得到 Data.class 吗?
查看完整描述

1 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

如果您使用 Jackson 作为您的图书馆。你可以只使用TypeReference:


TypeReference<Data<DataType>> r = new TypeReference<Data<DataType>>() {};

...

Data<DataType> data = objectMapper.readValue(json, r);

TypeReference此代码将创建一个新的参数化的匿名子类<Data<DataType>>。此类在内部使用“hackaround”来获取通用参数,然后由 Jackson 选择以反序列化您的 JSON。


查看完整回答
反对 回复 2022-12-21
  • 1 回答
  • 0 关注
  • 72 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信