我需要使用 RMI 将 java.lang.reflect.Field
从一个进程传递到另一个进程,但 Field
未实现 Serializable
接口(interface)。我该如何克服这个问题?
最佳答案
通过 RMI 传递字段没有意义。 Field 实例实际上是 java.lang.Class 实例的依赖对象,而 Class 对象也是不可传递的。 (Class
不可传输的原因是它会带来各种令人讨厌的类型检查问题......考虑到 Class
实例实际上表示引用类型。 )
您需要将相关的Field
字段声明为transient
。如果你想传输Field
信息,你可能需要以字段名/类名的形式传递它,然后在另一端在自定义 readObject
方法中。
关于java - 序列化字段类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12989843/