Elementy kolekcji deserializowanego obiektu z JSON są typu LinkedHashMap

0

Do kontrolera wysyłam obiekt DTO https://pastebin.com/d4SHZuZh. Do deserializacji z JSON używam klasy Builder @JsonDeserialize(builder = ContributionNewRequest.Builder.class).

Elementami kolekcji są obiekty typu ? extends MovieInfoDTO dziedziczące z MovieInfoDTO.

Kiedy pobieram elementy z listy np. elementsToAdd

contribution.getElementsToAdd()
            .forEach(boxOffice -> {
                ...
            });

okazuje się, że obiekt boxOffice jest typu java.util.LinkedHashMap.

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.jonki.popcorn.common.dto.movie.BoxOffice
at java.util.ArrayList.forEach(ArrayList.java:1257) ~[na:1.8.0_171]

Znalazłem wzmiankę na ten temat w internecie http://www.baeldung.com/jackson-collection-array, że elementy z kolekcji podczas konwersacji z JSON na typ Java są domyślnie ustawiane jako LinkedHashMap.

Jaki zabieg powinienem zastosować, aby poprawnie konwertowało obiekty na mój typ ? extends MovieInfoDTO.

1

Pokaż jaki minimalny kawałek kodu który można odpalić, bo teraz to trochę wróżenie z fusów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1