fastjson parseArray类型问题

8yparm6h  于 2022-10-21  发布在  其他
关注(0)|答案(2)|浏览(198)
public static List<Object> parseArray(String text, Type[] types) {
        if(text == null) {
            return null;
        } else {
            DefaultJSONParser parser = new DefaultJSONParser(text, ParserConfig.getGlobalInstance());
            Object[] objectArray = parser.parseArray(types);
            List list;
            if(objectArray == null) {
                list = null;
            } else {
                list = Arrays.asList(objectArray);
            }

            parser.handleResovleTask(list);
            parser.close();
            return list;
        }

    }

“ Arrays.asList(objectArray); ” 这个方法返回的类型不是java.utl.ArrayList 类型,而java.util.Arrays$ArrayList

brccelvz

brccelvz1#

这有什么问题?

pvcm50d1

pvcm50d12#

我没记错的话,Arrays.asList得到的List只是list的视图,所以基本特性和原生数组是一样的,是不允许push和remove等改变size的操作的。如果文档里没有注明这点,又不看源码,只看函数的返回类型,以为返回的是普通List,很容易中招~

相关问题