通过ObjectInputStream()接收而不具有类

时间:2014-06-27 15:22:24

标签: java sockets deserialization objectinputstream objectoutputstream

我试图创建一个服务器来接收一个实现客户端通过ObjectInputStream()发送的接口X的对象。

更好的解释: 我想让服务器通过接口接收对象而不实际具有服务器端的类。

由于ObjectInputStream()反序列化Object,该类必须存在于服务器端,如果不存在,则发生ClassNotFoundException()。

有没有其他方法可以通过套接字传递一个对象,而不必在另一边有他的类?我正在搜索执行相同ObjectInputStream的不同方法,但没有使用Class on Server端。如果没有办法,我必须一直在服务器上传Class,因此ObjectInputStream可以反序列化并且不会抛出ClassNotFoundException。

感谢。

1 个答案:

答案 0 :(得分:0)

如果您不想实例化对象,可以将其保存在byte []缓冲区中。要实例化它,你需要像RMI一样:由发送者提供远程类加载器。

但通常使用不同序列化机制的解决方案对于这种情况更好。想想Protobuf,JSON或者类似的。