![](/img/trans.png)
[英]java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.parse.ParseObject
[英]com.parse.ParseObject cannot be cast to
我正在開發具有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);
}
}
當我從 Fragment 調用以下方法時:
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
我已經從谷歌和 Stackoverflow 上搜索了很多東西,但我沒有得到任何解決方案。 任何人都可以幫助我解決這個問題,因為我已經花了很多時間在這上面。 下面是我從 Parse 得到的回復:
您提供的信息不是很具體,但從調試器屏幕來看,您似乎正在嘗試將ParsePhoto
轉換為ParseMessage
。 ParsePhoto
是子類ParseObject
,我相信這是造成問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.