Parse.com:继承ParseObject并调用getParseObject

时间:2015-10-14 14:46:29

标签: android parse-platform

我正在使用parse.com Android SDK。我有一个表Foo,其中包含指向表Bar的指针,以及扩展ParseObject的类Foo和Bar。在Foo,我有这个方法:

public void getBar(final GetCallback<Bar> callback){
    getParseObject("bar").fetchIfNeededInBackground(callback);
}

这是我得到的错误:

java.lang.ClassCastException: com.parse.ParseObject cannot be cast to com.package.Bar

getParseObject返回一个ParseObject,但fetchIfNeededInBackground不会返回子类,只返回ParseObject。文档描述如下:

public final <T extends ParseObject> void fetchIfNeededInBackground(GetCallback<T> callback)

对我而言,这似乎表明它将根据您传入的回调对象的类型返回ParseObject的子类。另一方面,fetch说:

public <T extends ParseObject> T fetch()

我不知道如何为该方法提供子类型。我是否需要在fetch的实例上调用Bar方法才能使其正常工作?如果是这样,我如何从Bar获得Foo?我想我可以打电话给getParseObject,创建一个新的Bar,然后将值从一个复制到另一个,但这真的很糟糕,我希望每次看到我都不需要洗澡这段代码。

1 个答案:

答案 0 :(得分:1)

我以不同的方式进行操作,然后解析给了我一个更有用的错误消息:Bar子类未注册。因此,如果您无法弄清楚为什么不能投射到您的子类,请确保它已注册,因为该例外可能不会将其作为原因。