这里我有类使用泛型
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);
你能帮忙我收到消息吗? &#34;不兼容的类型。 需要:XMLGregorianCalendar 发现:对象&#34;
答案 0 :(得分:1)
protected Map<E, Object> params;
该值是一个对象,因此是一个对象
因此您可以尝试将对象转换为XMLGregorianCalendar
XMLGregorianCalendar rqDateTime = (XMLGregorianCalendar)paramsContainer.getWithType(Param.SYS_RATES_DATE);
答案 1 :(得分:1)
此处的问题与Map
的值为Object
类型有关,您应该使用更具体的类型。
但是,如果您知道该值的类型为XMLGregorianCalendar
,则可以依赖于您在方法定义中定义的类型参数 T
{ {1}}并按下一步解决:
getWithType
有关通用方法的更多详细信息here。