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 中的数据? 

请大神赐教,感激不尽!


慕慕森
浏览 4488回答 5
5回答

慕勒3428872

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

不负相思意

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

摇曳的蔷薇

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

明月笑刀无情

Object date=pagelist.getResult();返回类型要明确,不要强转,鬼知道返回的类型是什么使用泛型吧public class ServiceResult<T>{&nbsp; &nbsp; private String resultMsg="";&nbsp; &nbsp; private int resultCode="";&nbsp; &nbsp; private T result;&nbsp; &nbsp; public T getResult(){&nbsp; &nbsp; &nbsp; &nbsp; return result;&nbsp; &nbsp; }&nbsp; &nbsp; public void setResult(T returnObj){&nbsp; &nbsp; &nbsp; &nbsp; this.result=returnObj;&nbsp; &nbsp; }}...ServiceResult<ArrayList<Jibing>> date=pagelist.getResult();ArrayList<Jibing> list = date.getResult();if (list != null && list.size() > 0){&nbsp; &nbsp; for (int i = 0; i < list.size(); i++)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; Jibing m = (Jibing)list.get(i);//报错&nbsp; &nbsp; }}

烙印99

看你date最终返回出来的是什么类型,根据类型去转换。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java