zoukankan      html  css  js  c++  java
  • flex 提供的Amf3Input 在做数据转换时候BUG解决办法

    byte[] buf = {[0xa,0xb,0x1,0x9,0x64,0x61,0x74,0x61,0xa,0x1,0x11,0x63,0x61,0x73,0x74,0x6c,0x65,0x49,0x64,0x4,0x80,0xe3,0xcb,0xb5,0xd,0x69,0x74,0x65,0x6d,0x49,0x64,0x6,0x2b,0x63,0x6f,0x6e,0x73,0x75,0x6d,0x65,0x2e,0x74,0x72,0x61,0x6e,0x73,0x61,0x63,0x74,0x69,0x6f,0x6e,0x2e,0x31,0x1f,0x74,0x72,0x61,0x6e,0x73,0x69,0x6e,0x67,0x54,0x72,0x61,0x64,0x65,0x49,0x64,0x5,0x41,0xb0,0x23,0x28,0x52,0x0,0x0,0x0,0x1,0x7,0x63,0x6d,0x64,0x6,0x25,0x74,0x72,0x61,0x64,0x65,0x2e,0x73,0x70,0x65,0x65,0x64,0x55,0x70,0x54,0x72,0x61,0x6e,0x73,0x1]};

    //上面是AMF对象的数据

    ByteArrayInputStream bi = new ByteArrayInputStream(buf);

    SerializationContext ser = new SerializationContext();

    Amf3Input amfin = new Amf3Input(ser);

    amfin.setInputStream(bi);

    Object obj = amfin.readObject();

    amfin.close();

    bi.close();

    通过调试以上代码发现 obj 里面有个HASHMAP数据其中一个字段的数值变成了科学计数法存放

    因为科学计数法 一般形式是2.12323 E8存储的,当你通过 (Integer)map.get["字段名"] 会出现double 类型找不到的异常

    解决办法。是

    Object data = map.get["字段名"];

    data.getClass() == java.lang.Double.class 判断下类型。再做强行转换

  • 相关阅读:
    02 树莓派的远程连接
    01 树莓派系统安装
    Python正课110 —— Django入门
    作业7 答案
    作业8
    作业7
    作业6
    文件操作
    字符编码
    基本数据类型之集合
  • 原文地址:https://www.cnblogs.com/maikkk/p/2289241.html
Copyright © 2011-2022 走看看