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 configures = (List) businesscontent;

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

Object强制转换为List_第1张图片

调试结果如下:

 

Object强制转换为List_第2张图片

2.改正如下:

定义一个方法强转Object到List

 /**
     * Object对象转 List集合
     *
     * @param object Object对象
     * @param clazz 需要转换的集合
     * @param  泛型类
     * @return
     */
    public static  List changeList(Object object,Class clazz){
        try {
            List 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包

 

调试结果如下:

Object强制转换为List_第3张图片

 

 

 

你可能感兴趣的:(java,object,arraylist,后端)