local class incompatible: stream classdesc serialVersionUID = 1134808625626452086

本文主要是介绍local class incompatible: stream classdesc serialVersionUID = 1134808625626452086,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

罪魁祸首居然是toString


学到java序列化与反序列化时,练习遇到了问题,记录一下:

最开始序列化时成功,能够把car对象写进D://car.txt
在这里插入图片描述
是一串乱码…(是否是乱码不重要,关键是写进到文件里去了)

但是当我从car.txt中反序列化,想在控制台打印信息时,就报错了
在这里插入图片描述
经过几番测试,发现是toString的问题去掉toString后就OK了

错误代码:

public class JavaSerilizable{public static void main(String[] args) throws IOException, ClassNotFoundException {//Car c = new Car("001","red",20000.0);FileInputStream fin = new FileInputStream("D://car.txt");ObjectInputStream objs = new ObjectInputStream(fin);Car o = (Car)objs.readObject();System.out.println(o.getColor());objs.close();fin.close();}
}class Car implements Serializable{private String id;private String color;private Double price;public Car(String id, String color, Double price) {this.id = id;this.color = color;this.price = price;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}@Overridepublic String toString() {return "Car{" +"id='" + id + '\'' +", color='" + color + '\'' +", price=" + price +'}';}
}

总结:在此只做记录,等以后有时间再来深挖;
如果有大佬知道原因的,请在评论区留下您的妙言!

这篇关于local class incompatible: stream classdesc serialVersionUID = 1134808625626452086的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/318101

相关文章

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

如何在运行时修改serialVersionUID

优质博文:IT-BLOG-CN 问题 我正在使用第三方库连接到外部系统,一切运行正常,但突然出现序列化错误 java.io.InvalidClassException: com.essbase.api.base.EssException; local class incompatible: stream classdesc serialVersionUID = 90314637791991

JavaSE(十三)——函数式编程(Lambda表达式、方法引用、Stream流)

函数式编程 函数式编程 是 Java 8 引入的一个重要特性,它允许开发者以函数作为一等公民(first-class citizens)的方式编程,即函数可以作为参数传递给其他函数,也可以作为返回值。 这极大地提高了代码的可读性、可维护性和复用性。函数式编程的核心概念包括高阶函数、Lambda 表达式、函数式接口、流(Streams)和 Optional 类等。 函数式编程的核心是Lambda

类型信息:反射-Class

在说反射前提一个概念:RTTI(在运行时,识别一个对象的类型) public class Shapes {public static void main(String[] args) {List<Shape> shapes = Arrays.asList(new Circle(), new Square(), new Triangle());for (Shape shape : shapes

react笔记 8-17 属性绑定 class绑定 引入图片 循环遍历

1、绑定属性 constructor(){super()this.state={name:"张三",title:'我是一个title'}}render() {return (<div><div>aaaaaaa{this.state.name}<div title={this.state.title}>我是一个title</div></div></div>)} 绑定属性直接使用花括号{}   注

Java stream使用与执行原理

stream简介 Stream: A sequence of elements supporting sequential and parallel aggregate operations stream为sequential即单线程串行操作,parallelStream支持并行操作,本文只讨论sequential的stream。 stream常用操作 @Datastatic

Java8中的Stream,让集合操作酸爽起来

简介 java8也出来好久了,接口默认方法,lambda表达式,函数式接口,Date API等特性还是有必要去了解一下。比如在项目中经常用到集合,遍历集合可以试下lambda表达式,经常还要对集合进行过滤和排序,Stream就派上用场了。用习惯了,不得不说真的很好用。 Stream作为java8的新特性,基于lambda表达式,是对集合对象功能的增强,它专注于对集合对象进行各种高效、便利的聚合

泛型参Class、Class、Class的对比区别

1.原文链接 泛型参Class、Class、Class的对比区别 https://blog.csdn.net/jitianxia68/article/details/73610606 <? extends T>和<? super T> https://www.cnblogs.com/drizzlewithwind/p/6100164.html   2.具体内容: 泛型参数Class、

Java中各种数据结构如何使用stream流

1. List 假设你有一个List<String>,你可以使用Stream来过滤、映射、排序等。 List<String> list = Arrays.asList("apple", "banana", "cherry", "date"); // 过滤操作 List<String> filteredList = list.stream() .filter(s -> s.startsW

【Node】Buffer 与 Stream

node 为什么会出现 Buffer 这个模块 在最初的时候,JavaScript 只运行在浏览器端, 对于处理 Unicode 编码的字符串很容易,但是对于处理二进制以及非 Unicode 编码的数据便无能为力。 不过对于 Server 端操作来说 网络I/O 以及 文件I/O 的处理是必须的,所以 Node 中便提供了 Buffer 类处理二进制的数据。 二进制缓冲区 Buffer