Incompatible types for common

I define jackoson serializer and add it to the java class as JsonDeserialize like this:

@JsonDeserialize(using = ReportFilterDeserializer.class)

      

The compiler reports this error:

error: incompatible types: Class<ReportFilterDeserializer> cannot be converted to Class<? extends JsonDeserializer<?>>
@JsonDeserialize(using = ReportFilterDeserializer.class)

      

Annotation value:

public Class<? extends JsonDeserializer<?>> using() default JsonDeserializer.None.class;

      

If I remove the shared attribute from the ReportFilterDeserializer its passed compilation. I don't understand why the complaint is complaining.

class ReportFilterDeserializer<T> extends JsonDeserializer<ReportFilter<T>> {
    @Override
    public ReportFilter<T> deserialize(JsonParser jsonParser,DeserializationContext arg1) throws IOException,JsonProcessingException {
        return null;
    }
}

      

+3


source to share


1 answer


This certainly seems odd. The only thing I can think of is random mixing of Jackson 1.x and 2.x comments against classes (org.codehaus.jackson - 1.x, com.fasterxml.jackson 2.x).



Behavior differs from different JDKs (e.g. 7 versus 8 - maybe Java 8 has problems?)

0


source







All Articles