[英]Incompatible types for generic
I define jackoson serializer and add it to java class as JsonDeserialize like this: 我定义了jackoson序列化程序并将其作为JsonDeserialize添加到java类中,如下所示:
@JsonDeserialize(using = ReportFilterDeserializer.class)
The compiler give this error: 编译器给出了这个错误:
error: incompatible types: Class<ReportFilterDeserializer> cannot be converted to Class<? extends JsonDeserializer<?>>
@JsonDeserialize(using = ReportFilterDeserializer.class)
The def of the annotation is: 注释的def是:
public Class<? extends JsonDeserializer<?>> using() default JsonDeserializer.None.class;
If I remove the generic atttibute from ReportFilterDeserializer its passed compilation. 如果我从ReportFilterDeserializer中删除了通用的atttibute,它就传递了编译。 I dont understand why the complier complain. 我不明白为什么编码器会抱怨。
class ReportFilterDeserializer<T> extends JsonDeserializer<ReportFilter<T>> {
@Override
public ReportFilter<T> deserialize(JsonParser jsonParser,DeserializationContext arg1) throws IOException,JsonProcessingException {
return null;
}
}
That certainly seems very odd. 这当然看起来很奇怪。 About the only thing I can think of is accidental mixing of Jackson 1.x and 2.x annotation vs classes (org.codehaus.jackson is 1.x, com.fasterxml.jackson 2.x). 关于我唯一能想到的是Jackson 1.x和2.x注释与类的偶然混合(org.codehaus.jackson是1.x,com.fasterxml.jackson 2.x)。
Does behavior differ on different JDKs (7 vs 8, for example -- maybe Java 8 has issues?) 行为在不同的JDK上是否有所不同(例如7对8,可能是Java 8有问题吗?)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.