【自动生成不同的序列化UID 】 | IT修真院·坑乎
咨询电话 : 010-59478634
切换导航
首页
我的提问
我的回答
我的点赞
消息通知
个人主页
×
提示
尚未登陆,前往官网登陆?
×
提示
尚未登陆,前往官网登陆?
自动生成不同的序列化UID
我也踩过这个坑(
1
)
已统计您的踩坑,无需重复点击
回答(1)
详细描述
反序列化的时候,爆无效类异常。
错误截图
源码
package test1; import java.io.Serializable; public class Animal implements Serializable { // private static final long serialVersionUID = 1L; private static String age = "222"; private String kind; private String color; transient private String name; // private String master; // // public String getMaster() { // return master; // } // // public void setMaster(String master) { // this.master = master; // } @Override public String toString() { return "Animal{" + "kind='" + kind + '\'' + ", color='" + color + '\'' + ", name='" + name + '\'' + ", age='"+age+'\''+ // ", master ='"+master+'\''+ '}'; } public static String getAge() { return age; } public static void setAge(String age) { Animal.age = age; } public String getKind() { return kind; } public void setKind(String kind) { this.kind = kind; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String getName() { return name; } public void setName(String name) { this.name = name; } } package test1; import java.io.*; public class Serialization { public static void main(String[] args) throws Exception{ // serializeAnimal(); Animal animal2= deserializeAnimal(); System.out.println("反序列化后得到的对象为:"+animal2); } private static void serializeAnimal() throws IOException{ //实例化对象和属性 Animal animal1=new Animal(); animal1.setColor("red"); animal1.setKind("cat"); animal1.setName("coco"); // // ObjectOutputStream 对象输出流,对象存储到.txt 文件中,完成对象的序列化操作 ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("/Users/a1/test/animal.txt")); //writeObject(Object obj)方法可对参数指定的obj对象进行序列化,把得到的字节序列写到一个目标输出流中 oos.writeObject(animal1); System.out.println("序列化Animal成功"); System.out.println("进行序列化的对象为:"+animal1); oos.close(); } private static Animal deserializeAnimal() throws Exception{ // ObjectInputStream 对象读取流 ObjectInputStream ois=new ObjectInputStream(new FileInputStream("/Users/a1/test/animal.txt")); //readObject()方法从一个源输入流中读取字节序列,再把它们反序列化为一个对象,并将其返回。 Animal animal2 = (Animal) ois.readObject(); System.out.println("Animal对象反序列化成功!"); return animal2; } }
编辑于2024-11-24
时间排序
热门排序
[上海|结业弟子]JAVA-胡畔
0
你把序列化的serialVersionUID注解掉了他还怎么反序列化呢
查看全部>
编辑于2019-08-17
首页
1
末页
去第
页
确定
Copyright ©2015 北京葡萄藤信息技术有限公司 All Rights Reserved | 京ICP备15035574号-1
复制链接
新浪微博
微信扫一扫
2596
0
10
自动生成不同的序列化UID
1
1