Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ParseQuery包含返回null_Java_Android_Null_Parse Platform - Fatal编程技术网

Java ParseQuery包含返回null

Java ParseQuery包含返回null,java,android,null,parse-platform,Java,Android,Null,Parse Platform,对于我正在开发的应用程序,我使用Parse(),在_User类中有两个不同的指针数组。该类包含我试图在查询中包含的两列:“following”和“friends” 我的问题是,结果总是null或空指针,这取决于我如何查询它 分析提到: 在某些情况下,您希望在一个查询中返回多种类型的相关对象。您可以使用include方法来实现这一点 但是,使用此include方法会导致结果为空。这是我的代码: ParseQuery<AAUser> query = ParseQuery.getQuery

对于我正在开发的应用程序,我使用Parse(),在_User类中有两个不同的指针数组。该类包含我试图在查询中包含的两列:“following”和“friends”

我的问题是,结果总是null或空指针,这取决于我如何查询它

分析提到:

在某些情况下,您希望在一个查询中返回多种类型的相关对象。您可以使用include方法来实现这一点

但是,使用此
include
方法会导致结果为空。这是我的代码:

ParseQuery<AAUser> query = ParseQuery.getQuery(AAUser.class);
query.include("following");
query.include("friends");
query.getInBackground(ParseUser.getCurrentUser().getObjectId, new GetCallback<AAUser>() {
    @Override
    public void done(AAUser user, ParseException e) {
        if(e != null)
            return;

        Log.d(TAG, String.valueOf(user.getFollowing()));
    }
});
ParseQuery=ParseQuery.getQuery(AAUser.class);
查询。包括(“以下”);
查询。包括(“朋友”);
query.getInBackground(ParseUser.getCurrentUser().getObjectId,new GetCallback()){
@凌驾
公共作废完成(AAUser,parsee异常){
如果(e!=null)
返回;
Log.d(TAG,String.valueOf(user.getFollowing());
}
});
user.getFollowing()
alwas在包含该字段时返回
[null]
。但是,如果我不包括它,它会返回一个应该返回的空指针<代码>[AALocation{id='iLUigvrvrc'}]

如您所见,我查询了我的子类AAUser类。我仍然通过查询ParseUser类得到相同的结果,所以我看不出子类化有什么不同

我如何解决这个问题?这是Parse SDK的错误吗?我使用的是Parse Android SDK的1.7.1版

我基本上是试图刷新包含这些字段的当前用户数据,但我发现它没有正常工作。。。 是的,我尝试了fetchInBackground(),但它没有提供任何包含这些字段的方法。我目前的解决方法是使用空指针并逐个查询所有指针,但我发现这是一个糟糕的解决方法。。。请挂断。

试试这个:

ParseQuery<ParseObject> query = ParseQuery.getQuery("_User");
         query.include("following");
         query.include("friends");
         query.findInBackground(new FindCallback<ParseObject>() 
          {
              public void done(List<ParseObject> followinglist, ParseException e) 
              {

                for (ParseObject following : followinglist) 
                {
                  ParseObject follow = following.getParseObject("following");
                  ParseObject friend=following.getParseObject("friends");


                }
              }
            }); 
ParseQuery query=ParseQuery.getQuery(“_User”);
查询。包括(“以下”);
查询。包括(“朋友”);
findInBackground(新的FindCallback()
{
公共作废完成(列表如下,e)
{
用于(以下对象:以下列表)
{
ParseObject follow=following.getParseObject(“following”);
ParseObject friend=following.getParseObject(“friends”);
}
}
}); 

您是否检查了此链接的文档@迪帕利:是的,我有。这是我在问题中引用的。根据那个文档,我当前的代码应该可以工作,但它不…你到底想要什么?请describe@dipali我想执行此查询并包含两个数组,但由于某种原因,Parse返回的不是数组而是null。请检查“query”的值是多少?是否为null?很遗憾,这实际上不起作用。:/“following”和“friends”都应该返回包含ParseObject的ArrayList。由于某些原因,甚至您的代码也返回null。@Pkmmte:请对(ParseObject following:following list){String follow=following.getString(“following”);}尝试此操作