【问题标题】:Complex object serialization复杂对象序列化
【发布时间】:2011-11-30 13:00:28
【问题描述】:

我有几个关于序列化复杂对象并将它们写入文件的问题。

首先,我有一些相互连接的对象,更准确地说,我有一个对象在列表中包含另一个对象,这些对象也包含另一个对象。因此,我要写入文件的对象的整体架构如下所示:

ComplexObject
-> holds List of NotSoComplexObject(s)
--> every NotSoComplexObject
---> holds a SimpleObject

所有对象都实现了 Serializable 接口。

如果我尝试序列化 ComplexObject 并将其写入文件,我没有得到特定的异常,因为 异常.getMessage() 方法返回 NULL(因此,这是一个被抛出的异常,但不清楚它是哪个异常)。

有没有办法实现ComplexObject被序列化并存储在一个文件中?

【问题讨论】:

  • 一个异常可以没有消息但仍然很有趣,你需要知道它的最终类型。尝试exception.printStackTrace(),并将完整的堆栈跟踪粘贴到您的问题中,这将有助于了解发生了什么。
  • 非常感谢 - 我在我的 DDMS(Eclipse 的 Android 调试工具)中得到了一个“NoSuchMethodException”,似乎它连接到了我尝试用一​​大堆对象序列化的 GeoPoint...我'我很困惑...

标签: java android serialization


【解决方案1】:

异常本身会告诉您它是什么类型。我假设它的 NotSerializableException。

在 Java 中你可能会这样做......

System.err.println(e);
e.printStackTrace();

【讨论】:

  • 感谢您的快速回复!实际上这是我没想到它会以任何方式出现的东西,它是“NoSuchMethodException”,它似乎是从我试图用一大堆东西保存的 GeoPoint 对象中抛出的!这真的可能吗?如果是这样,我将如何解决这个问题?实际上我以前从来没有遇到过这样的事情,所以我有点迷茫...... Android Manifest.xml 或类似的东西有什么问题吗??
  • NoSuchMethodException 表示库试图在运行时查找不可用的方法。这意味着您的库中有错误,或者您没有正确配置它。我会尝试从图书馆的提供者那里获得支持。
  • 非常感谢您的帮助,非常感谢!实际上,我通过以下两个步骤解决了这个问题: 1.) 创建自己的 GeoPoint 类,该类应该扩展 GeoPoint 并实现 Serializable,因为 GeoPoint 对象本身没有实现 Serializable 接口。 ///// 2.) 将<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><uses-permission android:name="android.permission.INTERNET"></uses-permission> 添加到Manifest,以及<uses-library android:name="com.google.android.maps" /> 条目
  • 确保您使用的是内部/匿名/嵌套类,它是static,否则外部类也会被序列化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-06
  • 2015-05-01
相关资源
最近更新 更多