java - 我想要通用类的“类" 与 "类变量"
问题描述
我想为 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 吗?
解决方案
如果您使用杰克逊作为您的图书馆。您可以使用TypeReference
:
TypeReference<Data<DataType>> r = new TypeReference<Data<DataType>>() {};
...
Data<DataType> data = objectMapper.readValue(json, r);
此代码将创建一个新的匿名子类,其TypeReference
参数化为<Data<DataType>>
。此类在内部使用“hackaround”来获取通用参数,然后由 Jackson 拾取以反序列化您的 JSON。
推荐阅读
- html - 我的 CSS 样式在 Mozilla Firefox 中无法正常工作
- css - 即使软件包安装在角度上,“字体真棒”图标也不会显示
- material-ui - Material-UI:在主题中获取颜色的透明度调整十六进制?
- go - 通过 cgo 调用 fts_open 时出现分段违规错误
- reactjs - 如何在 ReactJS 中为多个元素添加样式
- android - 监听按钮点击自定义android通知视图
- django - Django_filters 反向外键关系查找
- python - python中整数和字符之间的数组
- python-3.6 - AttributeError:模块“pgdb”没有属性“paramstyle”
- vue.js - nuxt中的路由器配置