我如何发送 Arraylist<java.awt.geom.Area>
通过套接字?
因为Area
不是Serializable
它给出了 NotSerializableException
有什么办法可以发送吗?
最佳答案
为了通过网络连接发送不可序列化的类,您必须自己提供代码来“序列化”它。这意味着设置序列化编码/格式,即将其转换为字符串或二进制表示形式,编写代码来生成这种格式,以及可以解析字符串/二进制表示形式并重新创建对象实例的代码。
这意味着您必须能够访问(并在字符串/二进制表示中进行编码)足够的内部状态,以便在反序列化时能够重新创建等效的对象。由于 java.awt.geom.Area
本身不支持序列化,因此这一切都取决于您。
对于一个简单的类,调用 toString() 来序列化并编写一些简单的代码来解析该输出字符串以重建等效对象就足够了。如何对一个复杂的类执行此操作将取决于该类的内部结构,并且可能超出了 SO 可以解释的范围。
对于 Area
来说,这可能并不简单,因为它可以表示许多不同的 Shape
类。
关于java - 通过套接字读/写 Arraylist<java.awt.geom.Area>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18133157/