Java 试图读取包裹字符串[]的NullPointerException
当我试图从中创建对象时读回Java 试图读取包裹字符串[]的NullPointerException,java,android,parcelable,Java,Android,Parcelable,当我试图从中创建对象时读回字符串[]时,我得到了一个NullPointerException。这是我的密码: @Override public void writeToParcel(Parcel out, int flags) { out.writeInt(floors); out.writeStringArray(indoorMaps); } public static final Parcelable.Creator<Building> CREATOR
字符串[]
时,我得到了一个NullPointerException。这是我的密码:
@Override
public void writeToParcel(Parcel out, int flags) {
out.writeInt(floors);
out.writeStringArray(indoorMaps);
}
public static final Parcelable.Creator<Building> CREATOR
= new Parcelable.Creator<Building>() {
public Building createFromParcel(Parcel in) {
return new Building(in);
}
public Building[] newArray(int size) {
return new Building[size];
}
};
private Building(Parcel in) {
floors = in.readInt();
in.readStringArray(indoorMaps);
}
@覆盖
公共无效写入包(包出,内部标志){
出、写(楼层);
out.writeStringArray(indoorMaps);
}
公共静态最终包裹。创建者
=新的Parcelable.Creator(){
公共建筑createFromParcel(地块内){
归还新建筑物(在);
}
公共建筑[]新阵列(整数大小){
归还新建筑[尺寸];
}
};
私人楼宇{
楼层=in.readInt();
in.readStringArray(indoorMaps);
}
所以indoorMaps是我的类的一个属性,它是一个字符串[]
,但是我得到了NullPointerException。我已经检查了房间,但里面什么也没有。
我跟着他们,他们正在那里使用readStringArray
有什么建议吗?谢谢在调用
readStringArray
时,您正在给包裹
一个null
数组。要使其工作,您必须初始化indoorMaps
。您可能需要createStringArray
。请在抛出NullPointerException的代码中添加带高亮显示行的stacktrace。NullPointerException在以下链接中抛出:in.readStringArray(indoorMaps);通过添加indoorMaps=newstring[floors],您是对的;在readStringArray之前,它解决了这个问题。我以为readStringArray是为我做的。谢谢@marimaf:readStringArray
无法为您分配数组,因为它无法更改引用参数指向的对象createStringArray
没有引用,而是为您创建了数组。非常感谢。想知道为什么我两天前没有找到你的答案:P