Object对象转换成HashMap集合,取值出现异常的问题

Object对象转换成HashMap集合,取值出现异常的问题

最近在将后台的代码基于RMI协议进行改造,因为协议是TCP协议,没有对值进行序列化,所以传参不能使用pojo。经过测试,发现后台做序列化和反序列化的速度比传Object对象的速度要慢上许多,所以使用Object转HashMap的方法进行值的交换。
但是!!!!!!!测试获取值的时候出现了问题,获取到一个整数型的值出现了转换的错误。
错误代码:

PanyunServiceRMI py = (PanyunServiceRMI) Naming.lookup("rmi://"+"localhost"+":"+"11111"+"/panyun");
List<Object> o = py.deviceData(0 , 200);
for(Object ob : o){
    Map<String, String> map = (Map<String, String>) ob;
    String hwid =  map.get("hwId");
    String value =  map.get("hwValue");
}

获取hwid的时候会出现异常,根据报错信息发现是long类型转换成String出现了异常。
经过改造后使用以下这种方式:

PanyunServiceRMI py = (PanyunServiceRMI) Naming.lookup("rmi://"+"localhost"+":"+"11111"+"/panyun");
List<Object> o = py.deviceData(0 , 200);
for(Object ob : o){
    Map<String , Object> map = (Map<String , Object>) o;
    String hwValue = (String) map.get("hwValue");
    long hwId = (long) map.get("hwId");
}

泛型里放object对象,强转的时候转换成long类型,这样就能正常的拿取值了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值