A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 贾振凯 中级黑马   /  2013-4-3 23:41  /  1060 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 贾振凯 于 2013-4-16 21:39 编辑
  1. public class Person implements Serializable{
  2. private static final long serialVersionUID = 1L;
  3. private static final Person p = new Person("jzk",1);;
  4. private String name;
  5. private int age;

  6. private Person(String name, int age) {
  7. this.name = name;
  8. this.age = age;
  9. }
  10. public static Person getInstance(){
  11. return p;
  12. }
  13. public String getName() {return name;}
  14. public int getAge() { return age;}

  15. private Object writeReplace()throws ObjectStreamException{
  16. return new Dog("旺财"); //此处将序列化的对像用Dog来替换 }

  17. private Object readResolve()throws ObjectStreamException{
  18. return new Person("jkk",2); //此处读取的时候用new Person("jkk",2)来替换读取的对像值
  19. }
  20. }





  21. public class SerializeOperate {
  22. public static void main(String[] args){

  23. ObjectOutputStream oos = null;
  24. ObjectInputStream ois = null;

  25. try {

  26. oos = new ObjectOutputStream(new FileOutputStream("E:\\serialize.txt"));
  27. ois = new ObjectInputStream(new FileInputStream("E:\\serialize.txt"));
  28. oos.writeObject(Person.getInstance());
  29. //根据上面的注释的理解,,,,,,,,,,,,这个地方为什么会报ClassCastException?????????????????////
  30. System.out.println(Person.getInstance()==(Person)ois.readObject());

  31. } catch (IOException e) {
  32. e.printStackTrace();
  33. throw new RuntimeException("序列化异常!");
  34. } catch (ClassNotFoundException e) {
  35. e.printStackTrace();
  36. throw new RuntimeException("反序列化异常!");
  37. }finally{
  38. try {
  39. if(oos != null)
  40. oos.close();
  41. }catch (IOException e) {
  42. throw new RuntimeException("关闭列化流异常!");
  43. }
  44. try {
  45. if(ois != null)
  46. ois.close();
  47. }catch (IOException e) {
  48. throw new RuntimeException("关闭反序列化流异常!");
  49. }
  50. }
  51. }
  52. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

1 个回复

倒序浏览
你的这个代码有问题吧,其中的Dog是哪里来的啊,请写全代码,把问题写清楚,如果没问题了,请将问题分类改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马