Java 什么';这是通用代码的问题(如果返回而不强制转换(T),则失败)
当我用maven构建这段代码时,它向我显示了错误“PRequest不能转换为T”Java 什么';这是通用代码的问题(如果返回而不强制转换(T),则失败),java,generics,extends,Java,Generics,Extends,当我用maven构建这段代码时,它向我显示了错误“PRequest不能转换为T” 如果我强制转换父对象的“getRequest(Object params)”方法的返回值 建造成功 如果我写的是 公共摘要请求获取请求(映射参数); 建造成功 公共抽象类父类{ 公共摘要T getRequest(映射参数); 公共T getRequest(对象参数){ //错误请求无法转换为T 返回映射的参数instanceof? getRequest((映射)参数): getRequest(JacksonUtil
公共抽象类父类{
公共摘要T getRequest(映射参数);
公共T getRequest(对象参数){
//错误请求无法转换为T
返回映射的参数instanceof?
getRequest((映射)参数):
getRequest(JacksonUtil.getMapper().convertValue(params,Map.class));
}
...
}
公共类子级扩展父级{
@凌驾
公共PRequest getRequest(映射参数){
返回新的PRequest();
}
...
}
公共类PRequest扩展了CommonRequest{
...
}
我想知道,当我将返回类型写为T时,如果没有像“(T)getRequest((Map)params)”“//error PRequest无法转换为T”这样的强制转换,为什么会发生错误:我得到的错误是“类型不匹配:无法从CommonRequest转换为T”。你确定你的代码是发布的吗?是的!100%.. 附加。。当我在tomcat上运行此代码时,它是o.o;;;///事实上,error msg可能是不正确的,但是,如果您尝试在测试中强制转换结果,那么在没有错误的情况下构建可能会成功