Java 获取泛型数组类类型的简单方法?
我有一个小代码片段,可以简化JSON数组的解析。我最初的想法如下(伪Java):Java 获取泛型数组类类型的简单方法?,java,Java,我有一个小代码片段,可以简化JSON数组的解析。我最初的想法如下(伪Java): public T[]parseAsArray(字符串内容,类值类型){ return objectMapper.readValue(content,T[].class);//不起作用,因为不能直接转到T[].class } 于是我就摆弄着代码。还有一些。还有一些 最终,我遇到了下面的混乱,这确实有效,但需要我创建一个新的数组实例,这样我就可以获取它的数组类类型,更不用说所有的转换了 public <T&
public T[]parseAsArray(字符串内容,类值类型){
return objectMapper.readValue(content,T[].class);//不起作用,因为不能直接转到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);
}
public T[]parseAsArray(字符串内容,类值类型){
类tArrClass=(类)Array.newInstance(valueType,0.getClass();
return(T[])objectMapper.readValue(content,tArrClass);
}
难道没有更简单的方法吗?我真正想做的是,如何从
T
到T[]
再到T[].class
?我想你可以使用TypeToken(或类似的东西)来指定结果是List。我发现它是新的TypeReference(),不知道如何处理数组。,这里有一些字符串->类hax通过类
?e、 g.parseAsArray(someContent,Integer[].class)
?class arrayClass=(class)class.forName(“[L”+classwhicharayisdefined.getName()+”;”;”);
看起来更混乱,不是我想的那样。。。
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);
}