我有一些代码片段,应该可以简化解析JSON数组的过程。我的想法最初是这样的(伪Java):
public <T> T[] parseAsArray(String content, Class<T> valueType) {
return objectMapper.readValue(content, T[].class); // doesn't work as you can't just go T[].class
}
因此,我在弄弄代码。然后更多。还有更多。
最终,我陷入了下面的混乱中,它确实可以工作,但是需要我创建一个新的数组实例,这样我才能获取其数组类类型,更不用说所有强制转换了。
public <T> T[] parseAsArray(String content, Class<T> valueType) {
Class<T[]> tArrClass = (Class<T[]>) Array.newInstance(valueType, 0).getClass();
return (T[]) objectMapper.readValue(content, tArrClass);
}
没有更简单的方法吗?我真正想做的就是,如何从T
到T[]
,再到T[].class
?