我正在尝试使用 messagpack.write(map)
序列化 map 。在使用 messagepack.read(byte[])
反序列化期间,我得到了 MapValue
。但我无法使用 MapValue.get(key) 获取值。看下面这个问题
HashMap<Object,Object> map = new HashMap<Object, Object>();
map.put(1,"ONE");
map.put("ONE","TWO");
MessagePack m= new MessagePack();
byte[] b = m.write(map);
MessagePack m1 = new MessagePack();
MapValue value = (MapValue)m1.read(b);
System.out.println(value);// here I am getting {1:"ONE",2:"TWO"}
System.out.println( value.get(1)); // printing the value for key 1. I am getting null.
请帮忙解决这个问题。谢谢。
诺萨德
最佳答案
您需要使用 ValueFactory 并转换 key 才能使用 Value 接口(interface)。这不太直观
// instead of value.get(1) use following
System.out.println(value.get(ValueFactory.createIntegerValue(1)));
// if the key would be a String use:
System.out.println(value.get(ValueFactory.createRawValue("key")));
关于java - 在消息包中,从 MapValue 获取值时出错。请帮助我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17993145/