我正在尝试让程序将Java中的Map
发送给客户端。服务器使用以下代码:
Object r=(Object)WorldHandler.world;
Object y=(Object)WorldHandler.troops;
out.println(r);
out.println(y);
其中WorldHandler.troops
为HashMap<Integer,HashMap<Integer,Troop>>
,WorldHandler.world
为HashMap<Integer,HashMap<Integer,Block>>
,out
为serverSocket.accept()
。然后客户端尝试接收它:
Object tMap=socketIn.readLine();
Map<Integer,Troop> j=new HashMap<Integer,Troop>();
j=(Map<Integer,Troop>)tMap;
我收到错误:
java.lang.ClassCastException
:java.lang.String
无法投放到java.util.Map
在j=(Map<Integer,Troop>)tMap;
所在的行。我做错了,还是有办法做到这一点?
答案 0 :(得分:0)
你需要做好几件事:
在您继续之前,这需要到位。
一种入门方法是将您的对象自己映射到JSON字符串或使用第三方库,然后将其传输到客户端。如果这个起点不够好,那么你可以开始讨论什么需要更好。