com.parse.ParseObject не может быть приведен к - PullRequest
0 голосов
/ 15 января 2019

Я занимаюсь разработкой приложения, имеющего 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:

Response from Parse

1 Ответ

0 голосов
/ 22 января 2019

Предоставленная вами информация не очень конкретна, но на экране отладчика выглядит, как будто вы пытаетесь преобразовать ParsePhoto в ParseMessage. ParsePhoto является подклассом ParseObject, и я считаю, что это вызывает проблему.

...