解析ParseUser返回类型的子类

Jes*_*rix 2 subclass return-type listener parse-platform

我是palassUser的子类,所以当我寻找用户我使用:

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

            @Override
            public void done(MySubClass user, ParseException e) {
Run Code Online (Sandbox Code Playgroud)

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

我用这个方法:

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

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

    }
});
Run Code Online (Sandbox Code Playgroud)

但我希望回调像我的查询中一样返回MySubClass对象.

与此相同:

MySubClass.getCurrentUser()
Run Code Online (Sandbox Code Playgroud)

小智 6

同样的问题在这里

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

@ParseClassName("_User")
public class User extends ParseUser {}
Run Code Online (Sandbox Code Playgroud)

然后在初始化解析之前注册您的类.

ParseObject.registerSubclass(User.class);
Run Code Online (Sandbox Code Playgroud)

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

User user = (User)ParseUser.getCurrentUser();
Run Code Online (Sandbox Code Playgroud)