最近在学习如何使用泛型但是遇到了问题这是我的代码:publicabstractinterfaceWondersClient{publicabstractTexcute(WondersRequestwondersRequest)throwsIllegalArgumentException,IllegalAccessException,UnsupportedEncodingException,IOException;}里面的这个抽象方法,我在实际的实现类里面返回了一个WondersResponse对象,但是却报错,说需要强制转换,这是为什么。
2 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
实现类方法return的时候做类型转换return(T)你的wonderResponse对象;(这样写eclipse会有warning)或者return一个T类型的变量;因为你定义了泛型方法,返回类型是,即真实的返回类型是WondersResponse一个子类。虽然你返回的是一个WondersResponse对象,但是编译器不认识,当你定义了泛型,编译器就只认识T。
幕布斯6054654
TA贡献1876条经验 获得超7个赞
说明你的return语句对返回值的引用不是WondersResponse类型或其子类;如果你确定它实际上就是WondersResponse类型或其子类的话,返回之前强转一下就行了:(T)retVal;
添加回答
举报
0/150
提交
取消