java object 转list_java ,将 object类型转换为 ArrayList<> 类型?汗血宝马

本文讲述了如何避免在从ServiceResult中获取ArrayList<Jibing>时的ClassCastException,通过明确返回类型并使用泛型来确保数据转换的正确性。作者详细解释了强转的必要性和错误产生的原因,并给出了正确的代码示例。
摘要由CSDN通过智能技术生成

本人做法如下:

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()打上括号啊,执行顺序明显不对。

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

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

}

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值