Когда я создаю этот код с помощью Maven, он показывает мне ошибку «PRequest не может быть преобразован в T».
если я приведу возвращаемое значение метода getRequest (Object params) Parent
Построение выполнено успешно.
если я напишу как
публичный реферат PRequest getRequest (параметры карты);
Построение выполнено успешно.
public abstract class Parent<T extends CommonRequest> {
public abstract T getRequest(Map<String, Object> params);
public T getRequest(Object params) {
// ERROR PRequest cannot be converted to T
return params instanceof Map ?
getRequest((Map)params) :
getRequest(JacksonUtil.getMapper().convertValue(params, Map.class));
}
...
}
public class Child extends Parent<PRequest> {
@Override
public PRequest getRequest(Map<String, Object> params) {
return new PRequest();
}
...
}
public class PRequest extends CommonRequest {
...
}
Я хочу знать, почему возникает ошибка, когда я записываю тип возвращаемого значения в виде T без приведения типа "(T) getRequest ((Map) params)"