简体   繁体   English

从本地数据存储解析查询后发生错误

[英]Error after Parse query from local datastore

I'm using Parse.com library and I want to query from local datastore if user lost access to internet (query on pinned items from previous app usage). 我正在使用Parse.com库,如果用户失去了对互联网的访问权限,我想从本地数据存储区中进行查询(查询以前的应用使用情况中的固定项目)。 Problem is that if use offline query it will not return List<Object> but weird AbstractList and I don't know how to convert it to ArrayList. 问题是,如果使用脱机查询,它将不会返回List<Object>而是奇怪的AbstractList而且我不知道如何将其转换为ArrayList。

Anyone had this issue? 有人遇到这个问题吗?

API call: 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)
            }
        }

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

Error: 错误:

java.lang.ClassCastException: java.util.AbstractList$SubAbstractListRandomAccess cannot be cast to java.util.ArrayList

Your cast is invalid because types are not convertible: objectList is of type AbstractList and that cannot be hard casted to ArrayList like that. 您的转换无效,因为类型不可转换: objectList的类型为AbstractList ,并且不能像这样硬转换为ArrayList

Instead, use Arrays.asList(objectList) , I think it has its own implementation and translates the abstract list. 相反,使用Arrays.asList(objectList) ,我认为它具有自己的实现并转换抽象列表。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM