|
【java大本营】http://www.javadby.com ,java实力站点,更新速度快,内容全面,鼓励原创,吸引了相当数量的IT学习者。 欢迎加入java交流群41970496,共同进步。
今天看了下JAVA序列化。还是一知半解。怎么也没有弄明白,怎么序列化成XML文件。处入半解状态。在网上找了很多,大部分是理论上的。没有实际的例子。功夫不负有心人,终于找到了。做了下测试终于成功。忍不住记录的下来。
JXmlSerializable 是一个利用java反射,通过调用对象中所有以get(不区分大小写)开头的方法除去getClass方法,生成xml格式,希望与大家分享一下 下面是一个parent对象,包含两个child对象 生成的xml如下
Child类
package xmlTest;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.InvocationTargetException;
 public class Child extends JXmlSerializable ...{

private String _name;
private String _sex;
private int age;

 public void setAge(int num) ...{
age = num;
}

 public int getAge() ...{
return age;
}

 public void setName(String name) ...{
_name = name;
}

 public void setSex(String sex) ...{
_sex = sex;
}

 public String getName() ...{
return _name;
}

 public String getSex() ...{
return _sex;
}

}



Parent类
package xmlTest;

import java.io.PrintWriter;
import java.lang.reflect.Array;
import java.util.*;

 public class Parent extends JXmlSerializable ...{

private String _name;
private String _sex;
private LinkedList list = new LinkedList();
private Vector vec = new Vector();
int age;

 public void setAge(int num) ...{
age = num;
}

 public int getAge() ...{
return age;
}

 public void setName(String name) ...{
_name = name;
}

 public void setSex(String sex) ...{
_sex = sex;
}

 public String getName() ...{
return _name;
}

 public String getSex() ...{
return _sex;
}

 public void addChild(Child child) ...{
list.add(child);
vec.add(child);
}

 public Child[] getChild() ...{

Child[] aa = new Child[vec.size()];
// list.toArray(aa);
vec.toArray(aa);
return aa;
}

 public static void main(String[] args) ...{
// TODO Auto-generated method stub
 try ...{
Parent pat = new Parent();
pat.setName("jack");
pat.setSex("male");
Child child1 = new Child();
child1.setName("tom");
child1.setSex("male");
pat.addChild(child1);
Child child2 = new Child();
child2.setName("Marie");
child2.setSex("female");
pat.addChild(child2);
pat.getChild();
PrintWriter out = new PrintWriter("abc.xml");
pat.toXmlSerial(out,0);
out.flush();

 } catch (Exception e) ...{
e.printStackTrace();
}

}
}
类 JXmlSerializable
共2页: 上一页 1 [2] 下一页
|