Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.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 Android-ParseQuery-Hashmap:Hashmap保持为空?_Java_Android_Parse Platform - Fatal编程技术网

Java Android-ParseQuery-Hashmap:Hashmap保持为空?

Java Android-ParseQuery-Hashmap:Hashmap保持为空?,java,android,parse-platform,Java,Android,Parse Platform,我在HashMap中实现ParseQuery时遇到问题。我的代码如下: HashMap<String, Integer> portfoliodata; public HashMap getPoints() { try { ParseQuery<RoyalPoints> pointsQuery = RoyalPoints.getQuery(); pointsQuery.whereEqualTo("user", ParseUser.g

我在
HashMap
中实现
ParseQuery
时遇到问题。我的代码如下:

HashMap<String, Integer> portfoliodata;
public HashMap getPoints() {

    try {
        ParseQuery<RoyalPoints> pointsQuery = RoyalPoints.getQuery();
        pointsQuery.whereEqualTo("user", ParseUser.getCurrentUser());
        List<RoyalPoints> list = pointsQuery.find();
        portfoliodata = new HashMap<>();
        for (RoyalPoints obj : list) {
            portfoliodata.put(obj.getString("business"), portfoliodata.get(obj.getString("business")) + obj.getInt("points"));
        }

    } catch (ParseException e) {
        Log.d("Points retrieval", "Error: " + e.getMessage());
    }
    return portfoliodata;
}
HashMap-portfoliodata;
公共HashMap getPoints(){
试一试{
ParseQuery pointsQuery=RoyalPoints.getQuery();
pointsQuery.whereEqualTo(“user”,ParseUser.getCurrentUser());
List=pointsqury.find();
portfoliodata=newhashmap();
对于(对象:列表){
portfoliodata.put(obj.getString(“业务”)、portfoliodata.get(obj.getString(“业务”))+obj.getInt(“点数”);
}
}捕获(解析异常){
Log.d(“点检索”,“错误:+e.getMessage());
}
返回叶脉;
}

然而,即使
obj.getString(“业务”)
obj.getInt(“点”)
给出了结果,并且没有生成错误,我的结果也是空的。你知道我该怎么解决这个问题吗?

看起来应该有错误。 在循环的第一次运行中,执行:

portfoliodata.put(
  obj.getString("business"),
  portfoliodata.get(obj.getString("business")) + obj.getInt("points"));

其中,
portfoliodata.get(obj.getString(“business”)
将为您提供一个
null
(因为映射是空的),将其添加到
int
应该抛出一个
NullPointerException

,看起来应该有错误。 在循环的第一次运行中,执行:

portfoliodata.put(
  obj.getString("business"),
  portfoliodata.get(obj.getString("business")) + obj.getInt("points"));

其中,
portfoliodata.get(obj.getString(“business”)
将为您提供一个
null
(因为映射是空的),将其添加到
int
应该会引发一个
null点异常

非常感谢!甚至将此行更改为
portfoliodata.put(obj.getString(“business”)、obj.getInt(“points”)给了我一个空的Hashmap,尽管它当时不应该是空的。我建议在循环中为每个
obj
执行更多日志打印。另外,请注意,您的
HashMap
是在函数外部声明的,因此如果您使用的是字段而不是返回值,您总是可以看到最新的结果。非常感谢!甚至将此行更改为
portfoliodata.put(obj.getString(“business”)、obj.getInt(“points”)给了我一个空的Hashmap,尽管它当时不应该是空的。我建议在循环中为每个
obj
执行更多日志打印。另外,请注意,
HashMap
是在函数外部声明的,因此如果您使用的是字段而不是返回值,那么您总是可以看到最新的结果。