Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';这是通用代码的问题(如果返回而不强制转换(T),则失败)_Java_Generics_Extends - Fatal编程技术网

Java 什么';这是通用代码的问题(如果返回而不强制转换(T),则失败)

Java 什么';这是通用代码的问题(如果返回而不强制转换(T),则失败),java,generics,extends,Java,Generics,Extends,当我用maven构建这段代码时,它向我显示了错误“PRequest不能转换为T” 如果我强制转换父对象的“getRequest(Object params)”方法的返回值 建造成功 如果我写的是 公共摘要请求获取请求(映射参数); 建造成功 公共抽象类父类{ 公共摘要T getRequest(映射参数); 公共T getRequest(对象参数){ //错误请求无法转换为T 返回映射的参数instanceof? getRequest((映射)参数): getRequest(JacksonUtil

当我用maven构建这段代码时,它向我显示了错误“PRequest不能转换为T”

  • 如果我强制转换父对象的“getRequest(Object params)”方法的返回值 建造成功

  • 如果我写的是 公共摘要请求获取请求(映射参数); 建造成功

  • 公共抽象类父类{
    公共摘要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可能是不正确的,但是,如果您尝试在测试中强制转换结果,那么在没有错误的情况下构建可能会成功