RMI编组和序列化

时间:2013-10-31 22:01:12

标签: java object serialization marshalling rmi

在使用RMI编组从远程类返回的对象的java中,您只需要在该对象上实现Serializable吗?我有一个类节点,里面有我想要返回的变量。我只是实现可序列化?如果是这样接收对象的类呢?它的类是否也需要实现serializable?

示例:

public class node implements Serializable{
//variables
//variables
public node(//arguments to constructor here){

}

}

3 个答案:

答案 0 :(得分:0)

正在序列化的类需要实现Serializable。发送和接收类没有。不知道为什么你会这么想。

答案 1 :(得分:0)

如果你有一个类要使用内置的Java序列化来序列化它的实例,那么它不仅必须实现Serializable,它的所有实例变量也必须实现Serializable,或者是原语,或者被标记为transient(即告诉JVM他们可以不进行序列化)。

如果您的类由于某种原因无法符合这些约束,您可以通过实现Externalizable自己实现自定义序列化行为 - 然后您负责写出对象的状态并在另一端读取它

答案 2 :(得分:0)

我不确定我是否正确理解你的问题,但是......如果可序列化的类有其他对象作为成员变量,那么最好也使它们可序列化,否则最好声明为瞬态跳过。这会回答你的问题吗?

如果代码检查员程序很方便,您可以非常快速地回答这个问题,而无需发布

对于你的提示,只有你想要持久或转移的对象需要实现Serializable,所以可以通过序列化/反序列化将对象重建为类结构