为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕慕森 2019-03-15 18:15:50
本人做法如下: 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 中的数据? 请大神赐教,感激不尽!
查看完整描述

5 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

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

查看完整回答
反对 回复 2019-04-16
?
不负相思意

TA贡献1777条经验 获得超10个赞

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


查看完整回答
反对 回复 2019-04-16
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

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


查看完整回答
反对 回复 2019-04-16
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

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);//报错

    }

}


查看完整回答
反对 回复 2019-04-16
?
烙印99

TA贡献1829条经验 获得超13个赞

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


查看完整回答
反对 回复 2019-04-16
  • 5 回答
  • 0 关注
  • 4487 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号