开发者社区 问答 正文

Java 返回值泛型问题

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

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

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

展开
收起
蛮大人123 2016-02-22 14:14:50 2391 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    实现类方法return的时候做类型转换
    return (T) 你的wonderResponse对象;(这样写eclipse会有warning)
    或者 return 一个T类型的变量;
    因为你定义了泛型方法,返回类型是 ,即 真实的返回类型是WondersResponse一个子类。虽然你返回的是一个WondersResponse对象,但是编译器不认识,当你定义了泛型,编译器就只认识T。

    2019-07-17 18:46:39
    赞同 展开评论
问答分类:
问答标签:
问答地址: