如下结构
<PersonInfo>
  <CountryName>String|中国</CountryName>
  <ProvinceName>String|江苏省</ProvinceName>
  <CityName>String|南京市</CityName>
  <Age>Integer|28</Age>
  <CourseInfo>
     <CourseId>Integer|1001</CourseId>
     <CourseName>String|Java</CourseName>
     <PassOrNot>Boolean|true</PassOrNot>
     <ReInfo>
        <Mark>Double|60.5</Mark> 
        <PassDate>Date|2004-12-12</PassDate>
     </ReInfo>
  <CourseInfo/> 
  <CourseInfo>
     <CourseId>Integer|1002</CourseId>
     <CourseName>String|C++</CourseName>
     <PassOrNot>Boolean|true</PassOrNot>
     <ReInfo>
        <Mark>Double|70.5</Mark> 
        <PassDate>Date|2005-12-12</PassDate>
     </ReInfo>
  <CourseInfo/> 
      ...
</PersonInfo>
数据转换存储时定义一个ArrayList(personDataList),两个ArrayList[](courseDataList,reDatList),
每次先存放re信息reDatList.add(Mark)/reDatList.add(PassDate),然后存放course信息
courseDataList.add(...),最后存放person信息personDataList.add(...);存储完,将整个ArrayList 信息
转出对象方式:
Object[] personData = new Object[personDataList.size()];
for(int i = 0 ; i< personDataList.size(); i++){
   personData[i] = personDataList.get(i);
}反过来将对象提取出来时怎么个处理法呢?需要细化每个成员对象,然后调用JavaBean的setters()
方法存放数据,谢谢!

解决方案 »

  1.   

    主要是结构中有可能是空值,而且对于控制时存放的对象里是不放值的,所以还不能直接转换成JavaBean所对应的结构对象。
      

  2.   

    第一层:
    Object arrayCourse = new Object();
    arrayCourse = srcData.getField(i);
    这时arrayCourse 存储的内容是:[[Ljava.lang.Object;@d6a05e, [Ljava.lang.Object;@ba8602]
    第二层:
    [[Ljava.lang.Object;@d6a05e, [Ljava.lang.Object;@ba8602] 实质为两个子对象,
    存储内容为:[1001, Java, 1, [Ljava.lang.Object;@ff057f] 和[1002, C++, 1, [Ljava.lang.Object;@4a6cbf]
    第三层:
    上述子对象中仍都有有个子对象[Ljava.lang.Object;@ff057f和[Ljava.lang.Object;@4a6cbf为如何通过定义对象来分别提取这三层的对象数据呢?谢谢!!