从本地数据存储区解析查询后出错

问题描述 投票:0回答:1

我正在使用Parse.com库,我想从本地数据存储区查询用户是否失去了对互联网的访问权限(查询以前应用程序使用的固定项目)。问题是,如果使用离线查询,它将不会返回List<Object>但奇怪的AbstractList,我不知道如何将其转换为ArrayList。

有谁有这个问题?

API调用:

fun getFilteredObjects(c: Context, searchQuery: String?, filteredObjectsCallback: (ArrayList<ParseObject>?, ParseException?) -> Unit){
            val q = ParseQuery.getQuery<ParseObject>(OBJECT_CLASS)
            if (!isOnline(c)) q.fromLocalDatastore()

            if (searchQuery.isNullOrEmpty()){
                q.limit = 10
            } else {
                q.whereMatches(OBJECT_NAME, searchQuery, "i")
            }

            q.findInBackground { objectList, err ->
                filteredObjectsCallback(objectList as ArrayList<ParseObject>?, err)
            }
        }

错误行:filteredObjectsCallback(objectList as ArrayList<ParseObject>?, err)

错误:

java.lang.ClassCastException: java.util.AbstractList$SubAbstractListRandomAccess cannot be cast to java.util.ArrayList
android kotlin parse-platform
1个回答
0
投票

你的演员表是无效的,因为类型不可兑换:objectList的类型为AbstractList,并且不能像这样硬编译到ArrayList

相反,使用Arrays.asList(objectList),我认为它有自己的实现并翻译抽象列表。

© www.soinside.com 2019 - 2024. All rights reserved.