解析ParseUser返回类型的子类

时间:2014-08-27 14:55:50

标签: parse-platform listener subclass return-type

我是子类化parseUser,所以当我寻找用户时我使用:

query.getFirstInBackground(new GetCallback<MySubClass>() {

            @Override
            public void done(MySubClass user, ParseException e) {

但是当我需要用户时 getCurrentUser或logInInBackground我得到ParseUser而不是MySubClass。

我使用这种方法:

MySubClass.logInInBackground(userName, "", new LogInCallback() {

    @Override
    public void done(ParseUser u, ParseException arg1) {

    }
});

但我想让回调像我的查询一样返回MySubClass对象。

与此相同:

MySubClass.getCurrentUser()

2 个答案:

答案 0 :(得分:6)

这里也有同样的问题。

实际上你可以通过正确地继承你的ParseUser来解决这个问题。

@ParseClassName("_User")
public class User extends ParseUser {}

然后在初始化解析之前注册你的课程。

ParseObject.registerSubclass(User.class);

然后您可以转换为您自己的子类而不会出现转换错误:

User user = (User)ParseUser.getCurrentUser();

答案 1 :(得分:1)

按照article。你实际上特别需要引用_User&#34; ParseClassName&#34;当子类化这个对象时。它超级毛茸茸,我被困在这个很长时间了,因为对于其他课程你只需要参考他们的名字,就像在Parse数据浏览器中看到的那样,在这种情况下是&#34; User&#34;,& #34; Info&#34;,&#34; Post&#34;等,但User类需要下划线。