У меня возникли проблемы с сериализацией и десериализацией Google AutoBean.У меня есть AutoBean, который содержит примитивные типы и карты.Я могу без проблем сериализовать и десериализовать примитивные типы, но когда я пытаюсь прочитать десериализованную Карту, я получаю NullPointerExceptionВы когда-нибудь сталкивались с подобной проблемой раньше?Есть тест JUnit, который представляет мою проблему.Первые два утверждения являются пропусками, но третье не выполняется.
public class AutoBeanTest {
@Test
public void test() throws Exception {
MyFactory myFactory = AutoBeanFactorySource.create(MyFactory.class);
Options options = myFactory.options().as();
options.setMyInt(5);
HashMap<Double, Boolean> map = newHashMap();
map.put(8.0, true);
map.put(9.1, false);
options.setMyMap(map);
Options deserialized = AutoBeanCodex.decode(myFactory, Options.class, AutoBeanCodex.encode(AutoBeanUtils.getAutoBean(options)).getPayload()).as();
assertEquals(deserialized.getMyInt(),5);
assertTrue(options.getMyMap().containsKey(8d));
assertTrue(deserialized.getMyMap().containsKey(8d));
}
public interface MyFactory extends AutoBeanFactory {
AutoBean<Options> options();
}
public interface Options {
public int getMyInt();
void setMyInt(int myInt);
Map<Double, Boolean> getMyMap();
void setMyMap(Map<Double, Boolean> myMap);
}
}