Firebase POJO 无法正常工作,无法识别我尝试投射到的 class

Firebase POJO not working, not recognizing class that I am try to cast to

当我运行下面的代码时,我得到以下错误:

com.google.firebase.database.DatabaseException: Class java.util.HashMap has generic type parameters, please use GenericTypeIndicator instead.

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);
            }
        }

奇怪的是这段代码在很长一段时间内都运行良好,我对高级 class(下图)进行了一些我目前正在处理的内容的小改动。当我昨晚取得一些进展时它正在工作,但现在它拒绝将它从 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 (){}

...

}

编辑:还值得一提的是,我还有另一个 class 对同一对象进行完全相同的查询,效果很好。

这是因为您的 HashMap 没有 generic type parameters<String, Object> 不见了。所以为了解决这个问题,你需要改变这一行:

private HashMap<String, HashMap> activities;

这一行:

private Map<String, Map<String, Object>> activities;

现在您可以相应地获取数据了。

希望对您有所帮助。