首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java序列化

Java序列化
EN

Stack Overflow用户
提问于 2016-10-03 11:23:41
回答 1查看 33关注 0票数 0

我试图在项目A中成功地将FilerDetailsExcelFileBean (项目A包A)类型的对象列表转换为字节array.After转换。我将字节数组传递到web服务,然后再将字节数组转换为项目B.In中的FilerDetailsExcelFileBean (项目B包B)类型的对象列表,以便从字节数组中获得对象列表,我在两个项目中创建了相同的文件FilerDetailsExcelFileBean,因为B包由于设计模式无法导入包A文件。

代码将ListOfObject转换为字节数组:

代码语言:javascript
复制
 ByteArrayOutputStream bos = new ByteArrayOutputStream();
 ObjectOutputStream oos = new ObjectOutputStream(bos);
 oos.writeObject(List);
 byte[] bytes = bos.toByteArray();

代码将字节数组转换为ListOfObject:

代码语言:javascript
复制
ByteArrayInputStream bis = new ByteArrayInputStream(filerMarkingFile.getRequestFile());
ObjectInputStream ois = new ObjectInputStream(bis);
List<FilerDetailsExcelFileBean> f = (List<FilerDetailsExcelFileBean>) ois.readObject();

错误是: FilerDetailsExcelFileBean classNotFound异常

注意:类型的FilerDetailsExcelFileBean文件列表在不同的项目中--A(将ListOfObject转换为字节数组的代码:)和FilerDetailsExcelFileBean文件在不同的项目中-B(代码将字节数组转换为ListOfObject:).and FilerDetailsExcelFileBean由于某些原因无法导入项目-B。

我知道这个问题(问题是当我们将arrayList转换为字节数组时,使用的是不同的持久文件,当我们将它转换回列表ob对象时,使用的是不同的持久文件),但是我需要解决这个问题,problem.What是解决这个问题的最佳方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-03 11:31:19

这是行不通的,packageA.FilerDetailsExcelFileBeanpackageB.FilerDetailsExcelFileBean不是同一个类,因此不能序列化第一个类,然后将其反序列化为第二个类。类名和类的布局是相同的这一事实是不够的。如果您想用Java序列化来完成这个任务,那么类必须完全相同--它们也必须在同一个包中。

而不是使用Java序列化,而是使用另一种机制--例如,将对象转换为JSON或XML,并在另一边解析它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39830447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档