首页 > java ,将 object类型转换为 ArrayList<> 类型?

java ,将 object类型转换为 ArrayList<> 类型?

本人做法如下:

 Object date=pagelist.getResult();
  ArrayList<Jibing> list =(ArrayList<Jibing>)date;//jibing 是实体类
     if (list != null && list.size() > 0)
        {
            for (int i = 0; i < list.size(); i++)
            {               
                Jibing m = (Jibing)list.get(i);//报错

问题, 最后一句报错,怎么获取list 中的数据?
请大神赐教,感激不尽!


强转容易报错,要确定 data 适合强转
具体要实现什么功能?


list.get()打上括号啊,执行顺序明显不对。


看你date最终返回出来的是什么类型,根据类型去转换。


Object date=pagelist.getResult();
返回类型要明确,不要强转,鬼知道返回的类型是什么
使用泛型吧

public class ServiceResult<T>{
    private String resultMsg="";
    private int resultCode="";
    private T result;
    public T getResult(){
        return result;
    }
    public void setResult(T returnObj){
        this.result=returnObj;
    }
}
...
ServiceResult<ArrayList<Jibing>> date=pagelist.getResult();
ArrayList<Jibing> list = date.getResult();
if (list != null && list.size() > 0)
{
    for (int i = 0; i < list.size(); i++)
    {               
        Jibing m = (Jibing)list.get(i);//报错
    }
}

Jibing m = (Jibing)list.get(i);这句前面的强转是多余的,list本身存的就是就是Jibing。报错应该就是ClassCastException,那么问题就是出在了ArrayList<Jibing> list =(ArrayList<Jibing>)date;这句,说明date是一个集合,但是集合里面不是Jibing,所以你可以强转成ArrayList,但是当你获取里面的元素时就不能强转成Jibing了。

【热门文章】
【热门文章】