我需要使用RMI将java.lang.reflect.Field
从一个进程传递到另一个进程,但是Field
没有实现Serializable
接口。我该如何克服这个问题呢?
答案 0 :(得分:3)
通过RMI传递Field是没有意义的。 Field实例实际上是java.lang.Class
实例的依赖对象,Class
对象也不可传输。 (并且Class
不可传播的原因是它会呈现各种令人讨厌的类型检查问题......考虑到Class
实例实际上表示引用类型。)
您需要将相关的Field
字段声明为transient
。如果要传输Field
信息,您可能需要以字段名称/类名称的形式传递它,然后在自定义{重新构建另一端的Field
{ {1}}方法。