我正在实现一种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()));
但如果两者都是可选的,我就无法做到。因此,我想知道是否有某种方法来识别parcelable中的对象是什么,某种方式来检查类签名?从这个意义上讲,我可以检查数据是否为ComplexClass1或2并进行读取。