最近在学习如何使用泛型但是遇到了问题这是我的代码:
public abstract interface WondersClient {
public abstract <T extends WondersResponse>T excute(WondersRequest<T> wondersRequest)throws IllegalArgumentException, IllegalAccessException,UnsupportedEncodingException,IOException;
}
里面的这个抽象方法,我在实际的实现类里面返回了一个WondersResponse对象,但是却报错,说需要强制转换,这是为什么。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实现类方法return的时候做类型转换
return (T) 你的wonderResponse对象;(这样写eclipse会有warning)
或者 return 一个T类型的变量;
因为你定义了泛型方法,返回类型是 ,即 真实的返回类型是WondersResponse一个子类。虽然你返回的是一个WondersResponse对象,但是编译器不认识,当你定义了泛型,编译器就只认识T。