java.lang.ClassCastException:java.lang.Double无法强制转换为[Ljava.lang.Object;

时间:2013-11-18 07:33:04

标签: java collections classcastexception

Iterator<Object> itr=list.iterator();
while(itr.hasNext()){
Object []obj=(Object[]) itr.next();------------------//line1
JSONObject jo = new JSONObject();
                jo.put("routeNo", (int)obj[6]);
                jo.put("routeName", obj[5].toString());
                jo.put("stopSequenceID", (int)obj[4]);
                jo.put("stopID", (int)obj[3]);
                jo.put("stopName",obj[2].toString());
                jo.put("lat", (double)obj[1]);
                jo.put("lon", (double)obj[0]);
}
java.lang.ClassCastException: java.lang.Double cannot be cast to [Ljava.lang.Object;---------------------at line(1)

我正在将列表转换为Object []。

由于'list'对象包含750条记录。 我将字段放在'jo'对象上。每条记录包含这7个字段。

请帮帮我。 提前致谢

2 个答案:

答案 0 :(得分:1)

itr.next();在您的案例中返回Object。你为什么要把它投到Object []

你可能打算做那样的事情:

Iterator<Double> itr=list.iterator();
ArrayList<Double> items = new ArrayList<>();
   while(itr.hasNext()) {
       items.add(itr.next());
   }

请注意,定义JSONObject jo不应位于while循环内。

答案 1 :(得分:0)

您可以使用List<Double>

Object[]转换为toArray
  List<Double> list=new ArrayList<>();
  list.add(10.0);
  list.add(10.0);
  list.add(10.0);

 Object[] obj=list.toArray();