Как я могу получить как конкретный тип с карты? - PullRequest
0 голосов
/ 12 апреля 2019

У меня два POJO выглядят следующим образом

class SomeSection extends LinkedHashMap<String, Object> {
    @Suppress({"unchecked"}) public <R> R computeTypedIfAbsent(
            String Key,
            Function<String, R> function) {
        return (R) computeIfAbsent(key, function);
    }
}

class SomeEntity extends SomeSection {
}

И я успешно создал экземпляр SomeEntity с некоторыми SomeSection с.

SomeEntity entity = new SomeEntity();
entity.put("some", new SomeSection());

И я понял,что я не могу получить значение как SomeSection из десериализованного экземпляра SomeEntity.И я ничего не мог с собой поделать, но делал

// with deserialized...
ofNullable(computeTypedIfAbsent(key, k -> null))
        .map(map -> {
            SomeSection section = new SomeSection();
            section.putAll(map);
            put(key, section); // I can do this all day!!!
            return section;
        });

Можно ли как-то сказать Джексону сопоставить LinkedHashMap<> с SomeSection?

Это ValueInstantiator что я ищу?

...