java - 从 ParseQuery 方法返回的字符串为 null

标签 java parse-platform parse-server parse-android-sdk

我想向此语句返回一个字符串:StringreplyUsername = queryUsernameById(objectId);

查询方法如下:

public String queryUsernameById(String objectid) {

        final String[] username = {null};
        ParseQuery<ParseUser> userQuery = ParseUser.getQuery();
        userQuery.whereContains(ParseConstants.KEY_OBJECT_ID, objectid);
        userQuery.getFirstInBackground((user, e) -> {

            // We found messages!
            if (e == null) {

                username[0] = user.getUsername();

            } else {
                e.printStackTrace();
            }
        });
        return username[0];
    }

当我显示字符串时,它返回为空。我该如何解决这个问题?

最佳答案

您还没有显示代码的其余部分,即您实际使用该值的位置,因此很难确定,但我的猜测是异步性在这里让您感到困惑。查询在后台运行,因此如果您使用的该值距离函数调用太近,则查询实际上尚未返回。您应该在完成处理程序中将值分配给标签,或者使用等待更新的键值监听器来更新标签。

另外,还有一个专门用于通过Id获取对象的查询方法,而不是添加objectId作为查询约束。 query.get(objectId) 或类似的东西,尽管我对 Java SDK 不太熟悉。它的优点是为不存在的对象返回 101 错误,而不是带有成功回调的空数组/对象。

关于java - 从 ParseQuery 方法返回的字符串为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45660444/

相关文章:

java - Java 物质外观和感觉的 GUI 问题

java - 提取带标签的 PDF 中的阅读顺序序列

java - Spring Boot找不到字段表单font-end

java - 无法使用 VNC 访问服务器上的 jarfile

arrays - 如何按日期对 PFObject 数组进行分组

javascript - 需要帮助澄清 Parse.User.setPassword 文档

javascript - 使用云代码在 Parse Server 上一次更新和保存数千个对象。代码不适用于 2 个以上的对象。 (解析.Object.saveAll())

ios - 将图像数组保存为 PFFiles

javascript - 在 Javascript 中查询 parse.com 对象中的指针

parse-platform - Firebase AfterSave 功能如 Parse.com