搜索
java泛型 - Java 返回值泛型问题
大家讲道理
大家讲道理 2017-04-17 14:44:55
[Java讨论组]

最近在学习如何使用泛型但是遇到了问题这是我的代码:

public abstract interface WondersClient {
    
  public abstract <T extends WondersResponse>T excute(WondersRequest<T> wondersRequest)throws IllegalArgumentException, IllegalAccessException,UnsupportedEncodingException,IOException;
  
}

里面的这个抽象方法,我在实际的实现类里面返回了一个WondersResponse对象,但是却报错,说需要强制转换,这是为什么。

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
PHP中文网

实现类方法return的时候做类型转换
return (T) 你的wonderResponse对象;(这样写eclipse会有warning)
或者 return 一个T类型的变量;

因为你定义了泛型方法,返回类型是 ,即 真实的返回类型是WondersResponse一个子类。虽然你返回的是一个WondersResponse对象,但是编译器不认识,当你定义了泛型,编译器就只认识T。

大家讲道理

说明你的return语句对返回值的引用不是WondersResponse类型或其子类;
如果你确定它实际上就是WondersResponse类型或其子类的话,返回之前强转一下就行了: (T) retVal;

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号