我定义了jackoson序列化程序并将其作为JsonDeserialize添加到java类中:
@JsonDeserialize(using = ReportFilterDeserializer.class)
编译器给出了这个错误:
error: incompatible types: Class<ReportFilterDeserializer> cannot be converted to Class<? extends JsonDeserializer<?>>
@JsonDeserialize(using = ReportFilterDeserializer.class)
注释的def是:
public Class<? extends JsonDeserializer<?>> using() default JsonDeserializer.None.class;
如果我从ReportFilterDeserializer中删除了通用的atttibute,那么它就会传递编译。我不明白为什么编码器会抱怨。
class ReportFilterDeserializer<T> extends JsonDeserializer<ReportFilter<T>> {
@Override
public ReportFilter<T> deserialize(JsonParser jsonParser,DeserializationContext arg1) throws IOException,JsonProcessingException {
return null;
}
}
答案 0 :(得分:0)
这当然看起来很奇怪。关于我唯一能想到的是Jackson 1.x和2.x注释与类的偶然混合(org.codehaus.jackson是1.x,com.fasterxml.jackson 2.x)。
不同JDK上的行为是否有所不同(例如7对8,可能是Java 8有问题?)