Я определяю jackoson сериалайзер и добавить его в класс Java, как JsonDeserialize так:Несовместимые типы для общего
@JsonDeserialize(using = ReportFilterDeserializer.class)
Компилятор дать эту ошибку:
error: incompatible types: Class<ReportFilterDeserializer> cannot be converted to Class<? extends JsonDeserializer<?>>
@JsonDeserialize(using = ReportFilterDeserializer.class)
ДЕФ в аннотации:
public Class<? extends JsonDeserializer<?>> using() default JsonDeserializer.None.class;
Если я удаляю общий атрибут из ReportFilterDeserializer, его переданная компиляция. Я не понимаю, почему жалоба жалуется.
class ReportFilterDeserializer<T> extends JsonDeserializer<ReportFilter<T>> {
@Override
public ReportFilter<T> deserialize(JsonParser jsonParser,DeserializationContext arg1) throws IOException,JsonProcessingException {
return null;
}
}
Как код объявления для этого сериализованного объекта выглядеть -
поведение отличается на разных JDKs (возможно Java 8 имеют проблемы? 7 против 8, например) Есть ли? – MaxZoom
Как вы планируете внедрять 'deserialize'? Как вы определяете 'T' в JSON? –
Вы можете посмотреть на этом: http://stackoverflow.com/questions/17979346/jackson-read-json-in-generic-list вот как я реализую. Этот вопрос относится к родовому, поэтому отложим в сторону json isssue. – user1236097