【转载】如何优雅的将Object转换成List

本文主要介绍了如何将Object转换为指定类型的List,包括使用ObjectToList工具类的objToList方法,该方法通过判断并转换ArrayList,利用Class.cast()进行类型强转。在实际编程中,此方法能帮助处理不同类型的对象转换问题。

参考文章:
https://www.cnblogs.com/xianz666/p/14003517.html

用到但不了解的:

Class.cast()方法,看源码似乎也是强转

   @SuppressWarnings("unchecked")
    public T cast(Object obj) {
        if (obj != null && !isInstance(obj))
            throw new ClassCastException(cannotCastMsg(obj));
        return (T) obj;
    }
————————————————
版权声明:本文为CSDN博主「说我什么才好」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/axzsd/article/details/79206172

思路:

  1. 无可厚非先要创建目标对象,指定目标数据类型
  2. 调用目标对象的添加元素方法(List就是add(),Map就是push())

/**
 * Object到List的转换工具
 * @param <T> 泛型,目前只有Express
 */
public class ObjectToList<T> {

    //泛型方法,不指定“一定是将Object转成XX类型的List”
    public List<T> objToList(Object object, Class<T> cl){
        //最后返回的List
        List<T> list = new ArrayList<T>();
        //判断Object是不是ArrayList
        if (object instanceof ArrayList<?>){
            for (Object o: (List<?>) object) {
                list.add(cl.cast(o));//cast方法需要了解更多
            }
            return list;
        }
        return null;
    }
}
  1. 在必要的时候使用这个转换工具,传入类.class参数
//3、可能存的不是List<Express>对象,没法转换
            if (object instanceof List){
                //不安全,用自定义的工具转换
                expressList = new ObjectToList<Express>().objToList(object, Express.class);
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值