美文网首页
解决对实现序列化接口出现的黄色警告问题

解决对实现序列化接口出现的黄色警告问题

作者: 卓昂芭比 | 来源:发表于2019-03-29 19:44 被阅读0次

/*解决对实现序列化接口出现黄色警告问题 

黄色警告:没有实现序列化ID(String、ArrayList都实现了Serialable,有序列化ID)

异常:java.io.InvalidClassException 

说明:当Serializable运行时检测到某个类具有以下问题时,抛出异常; 

 (1)该类的序列版本号从流中读取的类描述的版本号不匹配 

 (2)该类包含未知数据 

 (3)该类没有课访问的无参数构造方法 

   public class InputStreamReaderDemo1 { 

 public static void main(String[] args) throws IOException, ClassNotFoundException { //method1();//封装的快捷键shift+alt+M 

 method2(); 

 }

 private static void method2() throws IOException, FileNotFoundException, ClassNotFoundException { 

 //读取学生对象 //创建对象输入流的对象 ObjectInputStream ois=new ObjectInputStream(new FileInputStream("a.txt")); //读取数据 

 Object obj=ois.readObject();       System.out.println(obj);

 //释放资源

 ois.close(); 

 } 

 private static void method1() throws FileNotFoundException, IOException { 

 //写出学生对象 //创建对象输出流的对象 FileOutputStream fos=new FileOutputStream("a.txt");

//创建字节输出流对象 

 ObjectOutputStream oos=new ObjectOutputStream(fos); 

 //创建学生对象 Student s=new Student("张三",20); //写出学生对象 

 oos.writeObject(s); 

 //释放资源 

 oos.close(); 

 }

 }

public class Student implements Serializable {

private static final long serialVersionUID = 3114084939198280757L;//快捷键Ctrl+1

String name;

int age;

String grende;//给学生对象添加一个成员变量,序列版本号不一样了,出现java.io.InvalidClassException异常

public  Student(String name,int age) {

this.name=name;

this.age=age;

}

@Override

public String toString() {

return "Student [name=" + name + ", age=" + age + "]";

}

}

相关文章

网友评论

      本文标题:解决对实现序列化接口出现的黄色警告问题

      本文链接:https://www.haomeiwen.com/subject/pdvrbqtx.html