Как позволить Json-b десериализовать объект дженериков - PullRequest
0 голосов
/ 13 мая 2019

Я использую json-b (javaee-8.0) с реализацией yasson (1.0.3) для десериализации документа json. Работает с необработанным типом класса. Если объект данных содержит универсальные типы, я не знаю, как позволить jsonb / yasson десериализовать его, или если это вообще возможно.

public class RawClass {
    @JsonbProperty
    public List<RawClass1> list1;

    @JsonbProperty
    public List<RawClass2> list2;

    public RawClass() {};
}

RawClass result = jsonb.fromJson(inputStream, RawClass.class); // works

public class GenericClass <T, E> {
    @JsonbProperty
    public List<T> list1;

    @JsonbProperty
    public List<E> list2;

    public GenericClass() {};
}

// doesn't work, jsonb has no way of creating two lists with the actual 
// RawClass1 and RawClass2 as types, instead maps them to HashMap.
GenericClass<RawClass1, RawClass2> result = 
    jsonb.fromJson(inputStream, GenericClass.class) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...