Java 通用类,can';t返回泛型值
我正在尝试将时间字符串反序列化为Joda DateTime,因此我定义了此反序列化器:Java 通用类,can';t返回泛型值,java,generics,Java,Generics,我正在尝试将时间字符串反序列化为Joda DateTime,因此我定义了此反序列化器: public class JsonTimeDeserializer<T extends DateTime> implements JsonDeserializer<T> { @Override public T deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
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());
}
}
我不明白。T扩展日期时间
我做错了什么
谢谢你的第一行应该是
public class JsonTimeDeserializer implements JsonDeserializer<DateTime>
公共类JsonTimeDeserializer实现JsonDeserializer
您不需要创建自己的变量,只需引用现有变量即可
当您扩展泛型类型并添加新类型变量时,您也在使您的类型成为泛型类型,这在本例中并不是您想要的。是什么让您认为
T==DateTime
鉴于您上面的一行声明T扩展DateTime
。事实上,为什么这是通用的?好的,是的。我明白你的意思
public class JsonTimeDeserializer implements JsonDeserializer<DateTime>