具有许多可能的空值的Parcelable类

时间:2013-12-12 21:24:22

标签: java android parcelable

我有一个可以看起来像这样的parcelable类:

public class Product implements Parcelable {
    private String name;
    private String ean;
    private String shortDescription;
    private String description;
    private String safetyText;
    private String width;
    private String height;
    private String weight;
    private String length;
    private String youtubeId;
    private String ageFrom;
    private String ageTo;
}

正如您所看到的,有许多不同的属性,其中大多数属性都是null。此类由json解析器填充,该解析器解析服务器提供的数据。而且数据可能不完整。

我知道在实际字符串之前将1/0字节放入parcel时的技巧,当我从包中读取时,我可以使用此字节来指示String值是否存在。但对于12+ Strings来说,它不是一个非常好的解决方案,代码会变得非常混乱。还有更优雅的解决方案吗?

3 个答案:

答案 0 :(得分:2)

据我所知Parcel.writeString()将处理空值就好了。相应的Parcel.readString()将按预期返回null。

唯一重要的是将读取的顺序和类型与写入相匹配。

答案 1 :(得分:0)

如果您的代码与空字符串和指向字符串的空指针之间没有区别(如果没有区别则很好),一个可能的答案是将所有字符串初始化为构造函数中的空字符串或者你的解析器。然后,当你进行分组时,你总是可以假设字符串存在。

答案 2 :(得分:0)

有一个更简单的解决方案,在解析json时,首先检查是否提供了数据,如果是,那么一切都很好,

如果没有,则传递0作为值,看到你使用的字符串将在以后用作整数,

希望这会有所帮助