Groovy中给定模板类型X,如何获取X数组类型以通过测试?
解决Groovy中Jackson泛型列表解析问题
你需要将parseList2方法中的XXXXX替换为:
new ObjectMapper().typeFactory.constructArrayType(clazz)
修改后的完整方法代码如下:
private <T> List<T> parseList2(String string, Class<T> clazz) { def objectMapper = new ObjectMapper() objectMapper.readValue(string, objectMapper.typeFactory.constructArrayType(clazz)) as List<T> }
原理说明
Jackson的readValue方法解析数组时,需要明确数组的具体类型。当仅传入元素类型的Class<T>时,通过TypeFactory.constructArrayType(clazz)可以动态生成对应元素类型的数组类型,让Jackson正确将JSON数组反序列化为指定类型的数组,最终转换为List<T>。
内容的提问来源于stack exchange,提问作者Gabriel Carrera
相关产品推荐
相关产品推荐

