[英]How convert generic or rawtypes List to a String array
我正在制作通用或原始类型数据的列表,并尝试将其存储在String数组中,但是失败-
线程“主”中的异常java.lang.ArrayStoreException
这是代码片段,在此函数中,我试图将原始类型转换为字符串数组,但面对给定的数组,请您采取以下给定的示例并指导我在这里做错了什么-
public class Parsing {
public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {
//List<JsonGen> jsongenShow = null;
String url1 = "http://www.xxxxxxxx.com/radish/v20/dol/home/carousels/shows.json";
List[] nwDetails = getShowNWdetailsParser(jsongenShow, url1);
}
@SuppressWarnings("rawtypes")
public static List[] getShowNWdetailsParser (List<JsonGen> jsongenShow, String url ) throws JsonParseException, JsonMappingException, IOException
{
URL jsonUrl = new URL(url);
ObjectMapper objmapper = new ObjectMapper();
jsongenShow = objmapper.readValue(jsonUrl, new TypeReference<List<JsonGen>>() {});
List [] shows = new List [jsongenShow.size()];
String[] showsArr = new String[jsongenShow.size()];
showsArr= (String[])jsongenShow.toArray(showsArr);
for (int i=0; i == jsongenShow.size(); i++ ){
System.out.println(showsArr[i]);
}
int i = 0;
for(JsonGen element : jsongenShow) {
shows[i]=element.getNetworks();
i++;
}
for(int j =0; j<shows.length;j++)
{
System.out.println(showsArr[j]);
}
return shows;
}
}
Java无法自动为您将对象转换为String。 您必须遍历源列表并填充目标数组,然后自己将JsonGen映射到String。
非常不幸的是,API完全允许您的代码进行编译
经过一番实验,我终于找到了解决之道。
@SuppressWarnings("rawtypes")
public static String[] getShowNWdetailsParser (List<JsonGen> jsongenShow, String url ) throws JsonParseException, JsonMappingException, IOException
{
URL jsonUrl = new URL(url);
ObjectMapper objmapper = new ObjectMapper();
List<JsonGen> jsongenShow_1 = objmapper.readValue(jsonUrl, new TypeReference<List<JsonGen>>() {});
List [] shows = new List [jsongenShow_1.size()];
String[] showsArr = new String[jsongenShow_1.size()];
for(JsonGen element : jsongenShow_1) {
shows[i]=element.getNetworks();
showsArr[i]=shows[i].toString();
i++;
}
for(int j =0; j<shows.length;j++)
{
System.out.println(showsArr[j]);
}
return showsArr;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.