Object强制转换为List

1.采过的坑

java中如果是直接将某个对象强转成List,是无法强转成功的!

如:

{
    "BUSINESSCONTENT": [
        {
            "DATAID": "000001",
            "DATE": "2020-11-26 11:17:38",
            "HCLK": "200.0",
            "HCLT": "-150.0",
            "JYQS": "9",
            "PVF": "-2200.0",
            "PVZ": "2200.0",
            "YZQH": "1"
        }
    ],
    "DATAID": "000315",
    "HMAC": "0000",
    "SEC": "0",
    "TIME": "2020-11-26 11:17:38",
    "TYPE": "01",
    "USERID": "4406060263",
    "VERSION": "1.0"
}

想将上面的 json 对象中的 BUSINESSCONTENT获取之后转成 List对象

代码如下:

List<Configure> configures = (List<Configure>) businesscontent;

这种直接转换是有问题的,代码如下,我们运行调试下:

调试结果如下:

 

2.改正如下:

定义一个方法强转Object到List

 /**
     * Object对象转 List集合
     *
     * @param object Object对象
     * @param clazz 需要转换的集合
     * @param <T> 泛型类
     * @return
     */
    public static <T> List<T> changeList(Object object,Class<T> clazz){
        try {
            List<T> result = new ArrayList<>();
            if (object instanceof List<?>){
                for (Object o : (List<?>) object) {
                    String string = JSONObject.toJSONString(o);
                    T t = JSONObject.parseObject(string, clazz);
                    result.add(t);
                }
                return result;
            }
          return null;
        }catch (Exception e){
            e.printStackTrace();
            log.error(e.getMessage());
        }

        return null;
    }

JSONObject是Alibaba的fastJson包

 

调试结果如下:

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值