java - 通过套接字读/写 Arraylist<java.awt.geom.Area>

标签 java

我如何发送 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/

相关文章:

java - Amazon S3 Java SDK 多文件上传

java - 如何解析 Joda Time 中没有年份的日期时间字符串?

java - 从另一个类返回一个值到Android中的Activity

java - 如何替换 <br\/> 标签

java - 一个很好的网站,可以跟踪Java Jar文件的反向依赖关系

java - 使用其图形在另一个内部绘制控件

java - 尝试使用外部 .jar 在 Android 中不起作用

java - 关于在 Java 中加载 Class 实例

java - 唯一的数组列表

java - 在 RestExpress 响应中返回一个文件