在这里我有类使用泛型

public class ParamsContainer <E extends Enum<E> & Param>
{
  protected Map<E, Object> params;

  public <T> T getWithType(E param) {
    return (T) params.get(param);
  }
}


在这里,我无法通过编译器进行类型检查。

XMLGregorianCalendar rqDateTime = paramsContainer.getWithType(Param.SYS_RATES_DATE);


你能帮我为什么收到消息吗
“类型不兼容。
 要求:XMLGregorianCalendar
 找到:对象”

最佳答案

protected Map<E, Object> params;该值是一个对象,因此是一个对象

因此您可以尝试强制转换以将对象转换为XMLGregorianCalendar

XMLGregorianCalendar rqDateTime = (XMLGregorianCalendar)paramsContainer.getWithType(Param.SYS_RATES_DATE);

关于java - 在类和方法上均使用泛型时,类型不兼容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39849177/

10-13 03:27