【发布时间】:2017-06-20 19:21:41
【问题描述】:
当我运行下面的代码时,我收到以下错误:
com.google.firebase.database.DatabaseException:类 java.util.HashMap 具有泛型类型参数,请改用 GenericTypeIndicator。
seniorRef.orderByChild("seniorID").equalTo(caretaker.getSeniorID())
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data : dataSnapshot.getChildren()) {
Log.d("senior", data.toString());
Senior senior = data.getValue(Senior.class);
seniorBox.setText(senior.getFirstName() + " " + senior.getLastName());
caretasks(senior);
}
}
奇怪的是,这段代码在很长一段时间内都能完美运行,而我对高级课程(如下)做了一些小改动,以解决我目前正在处理的问题。当我昨晚取得一些进展时它正在工作,但现在它拒绝将它从 HashMap 转换为 Senior。如果我尝试将其转换为 (Senior) data.getValue(),则会引发类型转换错误。请让我知道我做错了什么。
public class Senior implements Serializable {
private String seniorID;
private String firstName;
private String lastName;
private String address;
private HashMap<String, HashMap> activities;
public Senior (){}
...
}
编辑:还值得一提的是,我有另一个类对同一个对象进行完全相同的查询,效果很好。
【问题讨论】:
-
数据库中的数据是否可能与您最近对 Senior.class 所做的更改不匹配?
-
@MacLeanSochor 我昨天将
HashMap<String, HashMap> activities参数写入数据库,我刚刚尝试从数据库中删除该特定节点并且它有效,所以错误肯定存在。
标签: android firebase firebase-realtime-database pojo