我试图将时间字符串反序列化为Joda DateTime,所以我定义了这个反序列化器:
public class JsonTimeDeserializer<T extends DateTime> implements JsonDeserializer<T> {
@Override
public T deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
DateTimeFormatter dtf = DateTimeFormat.forPattern("HH:mm");
return json == null ? null : dtf.parseDateTime(json.getAsString());
}
}
我得到了:
required: T
Found org.joda.time.DateTime
我不明白。 T扩展了DateTime。
我做错了什么?
由于
答案 0 :(得分:2)
你的第一行应该是
i
您不需要创建自己的变量,只需引用现有的变量
当您扩展泛型类型并添加新类型变量时,您也会使您的类型变为通用类型,在这种情况下,这不是您想要的。