根据定义,类的可序列化由实现java.io.Serializable
接口的类启用。未实现此接口的类将不会将其任何状态序列化或反序列化。
但是当我将它与XML一起使用时,对象的状态被保存为XML而不使用serializable。
如果没有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();
}}
答案 0 :(得分:2)
Java序列化是一种特定的字节格式,用于序列化对象,利用ObjectOutputStream
进行序列化,ObjectInputStream
进行反序列化。通过实现标记接口Serializable
,可以为此类型序列化“启用”对象。
但是,您要序列化为XML,这与普通的Java序列化机制无关,因此您不需要实现Serializable
。相反,您需要遵循您正在使用的XML序列化框架的“规则”和期望。