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
是在函数外部声明的,因此如果您使用的是字段而不是返回值,那么您总是可以看到最新的结果。