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
user1236097
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
StaxMan
source
to share