Я занимаюсь разработкой приложения, имеющего Parse Platform . Для получения данных я вызываю функцию ParseCloud.callFunctionInBackground
.
Я зарегистрировал Parse и его подкласс в классе Application, как показано ниже:
public class App extends Application {
@Override
public void onCreate(){
super.onCreate();
Parse.setLogLevel(Parse.LOG_LEVEL_VERBOSE);
OkHttpClient.Builder builder = new OkHttpClient.Builder();
HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
builder.networkInterceptors().add(httpLoggingInterceptor);
ParseObject.registerSubclass(ParseMessage.class);
Parse.initialize(new Parse.Configuration.Builder(this)
.applicationId("KEY")
.server("URL")
.build());
}
}
У меня есть класс модели, который расширяет ParseObject:
@ParseClassName("ParseMessage")
public class ParseMessage extends ParseObject {
// Ensure that your subclass has a public default constructor
public ParseMessage() {
super();
}
public ParsePhoto getPhotos() {
return (ParsePhoto) getParseObject("photos");
}
public void setPhotos(ParsePhoto value) {
put("photos", value);
}
public String getCaption() {
return getString("caption");
}
public void setCaption(String value) {
put("caption", value);
}
}
Когда я вызываю этот метод ниже из моего фрагмента:
HashMap<String, Object> params = new HashMap<String, Object>();
ParseCloud.callFunctionInBackground("MY_METHOD", params, new FunctionCallback<ArrayList<ParseMessage>>() {
public void done(ArrayList<ParseMessage> mapObject, ParseException e) {
if (e == null) {
ParseMessage object = mapObject.get(i);
}
} else {
}
}
});
Но я получаю ниже исключения:
java.lang.ClassCastException: com.parse.ParseObject не может быть приведен к
com.example.ParseMessage
Я уже много раз искал в Google и Stackoverflow, но я не получил никаких решений. Может ли кто-нибудь помочь мне в этом, так как я уже трачу много времени на это. Ниже ответ, который я получаю от Parse: