【问题标题】:Why we don't need to implement Serializable to serialize to xml为什么我们不需要实现 Serializable 就可以序列化为 xml
【发布时间】:2018-04-09 20:06:06
【问题描述】:

根据定义,类的可串行化由实现java.io.Serializable 接口的类启用。未实现此接口的类将不会对其状态进行任何序列化或反序列化。

但是当我将它与 XML 一起使用时,对象的状态被保存到 XML 中,而不使用可序列化。

没有Serializable 接口我怎么能做到这一点?

以下是附件代码:

public class SerializeXml {public static void main(String[] args) {

Student s1=new Student("Sachin",1);
Student s2=new Student("Abhinav",2);


try {
    XMLEncoder x=new XMLEncoder(new BufferedOutputStream(new FileOutputStream("Students.xml")));
    x.writeObject(s1);
    x.writeObject(s2);
    x.close();
    System.out.println("Success");
}


catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();}}}

这是存储值的方法

public class Student{ public String name;public int rollno;

   public Student(String Name,int Rollno)
   {
        name=Name;
        rollno=Rollno;

   }

   public Student()
   {
        super();
   }}

【问题讨论】:

    标签: java xml serialization


    【解决方案1】:

    Java 序列化是一种用于序列化对象的特定字节格式,使用ObjectOutputStream 进行序列化,使用ObjectInputStream 进行反序列化。通过实现标记接口Serializable,为这种类型的序列化“启用”对象。

    但是你是序列化成XML,这和正常的Java序列化机制没有关系,所以你不需要实现Serializable。相反,您需要遵循您正在使用的 XML 序列化框架的“规则”和期望。

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 2010-09-15
      • 2013-05-01
      • 2011-01-27
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多