我需要一些关于 java 序列化的说明。如果我正在序列化一个对象并且我想通过 RMI 返回该对象,我是否只需在对象的自定义类上实现可序列化?我见过 objectoutputstream 和 objectinputstream 但我不知道是否需要使用它们,因为我不太了解它们的用法。我的第二个问题是如何使数组列表可序列化?我的第三个问题可能与我的第一个问题有关,但是在返回对象之前如何整理对象?序列化对象是否会在此过程中编码(marshal)它?
让我们调用有问题的类句子:
public class Sentence implements Serializable {
}
然后我将创建该类的实例并从其他类返回该对象
最佳答案
是的:实现 Serialized 使您的对象可序列化,除非它引用不可序列化的对象。 RMI 在内部使用对象流来发送和接收对象。如果使用 RMI,则不需要使用它们。如果您想使用套接字发送对象,或者将其保存到文件中,那么您可以使用它们。
ArrayList 已经可序列化。看看它的javadoc。您无需执行任何操作。
您只需从 RMI 方法返回对象,RMI 就会为您序列化它。序列化和编码是两个词,基本上含义相同。同样,如果 RMI 方法接受参数,RMI 将序列化作为参数传递的对象,将其发送到 RMI 服务器,RMI 服务器将反序列化它,然后调用您的实际方法。这一切都由 RMI 为您完成。
关于java - RMI 序列化/编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19741130/