从Firebase获取Parcelable对象时触发NullPointerException求助
解决Parcelable读取Anak对象时的NullPointerException问题
问题根源很直接:你调用Anak.getClass()时,Anak是未初始化的对象变量(此时为null),调用null对象的getClass()方法必然触发NullPointerException。正确的做法是直接通过类本身获取类加载器,而非依赖对象实例。
核心修复
把Diary模型Parcel构造函数里的代码行:
this.Anak = parcel.readParcelable(Anak.getClass().getClassLoader());
替换为:
this.Anak = parcel.readParcelable(Anak.class.getClassLoader());
辅助检查
确认Anak类正确实现Parcelable接口:
writeToParcel方法要把所有字段完整写入Parcel- 静态
CREATOR常量要正确实现,能从Parcel重建Anak对象 - Parcel参数的构造函数要按写入顺序读取所有字段
从Firebase读取时,如果Anak字段可能为null,读取后可添加null检查避免后续逻辑出错;同时确保Diary的
writeToParcel方法正确写入Anak对象:parcel.writeParcelable(this.Anak, 0);
内容的提问来源于stack exchange,提问作者dee
相关产品推荐
相关产品推荐

