我的Java套件使用ObjectOutputStream和ObjectInputStream通过TCP / IP流对象。
有时接收方会从发件人那里获取一个未知对象。例如(删除所有异常捕获和一致性测试):
ObjectInputStream sInput = new ObjectInputStream(socket.getInputStream());
while (true) {
Object receivedObject = sInput.readObject();
System.out.println("Received object class: " +
receivedObject.getClass().getSimpleName() +
"\nValue: [" + receivedObject.toString() + "]");
}
我偶尔会得到这样的输出:
Received object class: Object
Value: [java.lang.Object@12345678]
有没有办法转储对象?我的意思是,真的转储对象。不重写toString()。 (我发送的每个对象都正确定义了toString()方法。)
似乎有些东西在线路传输中混淆了,因此接收Java VM无法告诉我对象是什么。
我的第一个想法是客户端和服务器的Java类不匹配。 (这个
提前致谢!