В пакете сообщений ошибка при получении значения из MapValue.. Пожалуйста, помогите мне
Я пытаюсь сериализовать карту используя messagpack.write(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.
Пожалуйста, помогите в этом.. Спасибо.
Nausadh
1 ответ
Решение
Вам нужно использовать ValueFactory и преобразовать ключ, чтобы использовать интерфейс Value. Это не совсем интуитивно
// 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")));