1

我正在实现一种 XSD 对象到 Android 上的 Parcelable 之间的映射。一切都很好,除非我有一个更复杂的 xsd 元素,其中包含一个可选元素(minOccurs='0' maxOccurs='1')。

我需要使用以下格式编写我的 bean 构造函数:

private Bean (Parcel in) {
    super();
    this.setId(in.readInd());
    this.setComplexData((ComplexClass) in.readParcelable(ComplexClass.class
            .getClassLoader()));
    this.setComplexData2((ComplexClass2) in.readParcelable(ComplexClass2.class
            .getClassLoader()));

}

但是这两个复杂的数据都是可选的。

当我只有一个可选数据时,我正在使用:

    if(in.dataAvail() >0)
                this.setComplexData((ComplexClass) in.readParcelable(ComplexClass.class
            .getClassLoader()));

但如果两者都是可选的,我不能这样做。因此,我想知道是否有某种方法可以识别包裹内的对象是什么,某种方法可以检查类签名?从这个意义上说,我可以检查数据是 ComplexClass1 还是 2 并进行读取。

4

0 回答 0