private void personCenter(ReaderInfo info, Socket s) { String stuNum = info.getReader_number(); // 读者学号 maps.put("stuNum", stuNum); // 借阅数量 int count = process.countBorrowedBookNumber(stuNum); maps.put("totalBorrow", count); // 到期提醒 Map<String, Object> over = process.getFastlyExpiredBorrowedBook(info.getReader_number()); // 到期书籍加上快到期书籍 @SuppressWarnings("unchecked") int overBook = ((List<String>) (over.get("over"))).size() + ((List<String>) (over.get("fast"))).size(); maps.put("overBook", overBook); // 签到次数 int loginCount = process.getLoginCountByUser(stuNum); maps.put("loginCount", loginCount); // 收藏书单数量 int collection = process.countAllCollectionBookByStuNum(stuNum); maps.put("collection", collection); toJsonObject(maps, s); }
以上是服务器发送map回来,map里有Int数据
客户端:
new Thread(){ public void run() { socket=SocketUtil.createSocket(); SocketUtil.toJsonObject(u, socket); maps=SocketUtil.jsonObjToBean(ois); int in=(int) maps.get("overBook"); System.out.println(in); }; }.start();
然后就报错,错误代码如下:
解决方案
20
1.看toJsonObject(maps, s);后的值。
2.SocketUtil.jsonObjToBean(ois)后的值和接收到的值 。
一般之种情况多发于服务器端转换过程中。
2.SocketUtil.jsonObjToBean(ois)后的值和接收到的值 。
一般之种情况多发于服务器端转换过程中。
10
maps.put(“overBook”, overBook); 估计是你这里没有指定类型, 系统给你用了Double类型而不是Integer,
你可以试试在这里, 本人构造一个Integer对象传入. 不让系统帮你自动转换
你可以试试在这里, 本人构造一个Integer对象传入. 不让系统帮你自动转换
10
你上面有个warning你不要去掉。看下警告原因。然后对着比较下借阅数量的数据类型。对比分析下。