Предыстория: я экспериментирую с приложением для обмена сообщениями.
Описание проблемы: обычно Codesnipped 2 работает как шарм и загружает данные с сервера. Но при активации LocalDatastore с Codesnipped 1 ошибка
java.lang.ClassCastException: com.parse.ParseObject не может быть приведен к at.test.activity.Message
возникает. Сообщение является подклассом ParseObject.
При просмотре Отладчиком строки, в которой возникает ошибка, видно, что список, который передается функции done, содержит только один объект типа «Сообщение» в первой позиции, а все остальные элементы имеют тип «ParseObject». " (-> Скриншот: Вывод отладчика при активации локального хранилища данных) . Без активированного локального хранилища данных каждый элемент этого списка имеет тип «Сообщение».
Что я делаю не так? Заранее спасибо!
Кодировано 1:
Parse.initialize(new Parse.Configuration.Builder(this)
.applicationId("test")
.enableLocalDataStore()
.clientBuilder(builder)
.server("http://someinstallation.com/parse/")
.build());
Кодировано 2:
ParseQuery query = ParseQuery.getQuery(Message.class);
ArrayList idsToQuery = new ArrayList<>();
idsToQuery.add(getSenderID());
idsToQuery.add(getRecipiantID());
query.whereContainedIn("sender", idsToQuery);
query.whereContainedIn("recipiant", idsToQuery);
query.orderByDescending("createdAt");
query.findInBackground(new FindCallback() {
public void done(List messages, ParseException e) {
if (e == null) {
addMessagesTomList(messages);
}
else {
Log.e("message", "Error Loading Messages" + e);
}
}
}); `