泛型问题??

泛型问题??

http://img1.sycdn.imooc.com//climg/5f558666096cefe411770243.jpg


重新回顾了下源码

如图所示   

  1. success()函数 没有使用到参数,,是不是可以 不用指定泛型 T??   也就是不用写那2个<T>??

  2. 泛型的指定,为什么要写2个<T>,,另外<T> 为什么要写在 static 后面,这是什么意思?? 如果我不写在 static后面,,  APIResp后面的<T>会出现 ***.this 无法被静态域所调用

  3. 其实问题根本都是一样的    static 后面的<T>到底是什么意思,,为什么一定要加上,,,APIResp后面的<T>才是真正指向 参数中的 类型T 吧???  

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕阿慧 2020-09-08 11:31:06

同学你好,static后面的<T>是定义泛型。返回值ApiRestResponse<T>中用到了泛型,所以需要在定义方法的时候写上<T>说明这是一个泛型方法。返回值ApiRestResponse后面的<T>可以不加。如下这两种写法都是可以的:

http://img1.sycdn.imooc.com//climg/5f56faf5098c4e9c04520167.jpg

祝学习愉快~

好帮手慕阿慧 2020-09-07 14:52:17

同学你好,

1、success()函数是否需要使用泛型要结合具体的业务需求。如果请求成功时需要往data中放数据,那么就需要使用泛型。

2、这里success()方法是返回值作为泛型,写2个T是返回值作为泛型的写法,第一个<T>要在static后面,返回值ApiRestResponse<T>前面。

    第一个<T>表示声明success()方法持有一个类型T,也可以理解为此方法是泛型方法。

ApiRestResponse<T>用于指明success()方法的返回类型。返回值ApiRestResponse中的泛型类型根据接收处的类型决定。比如:使用ApiRestResponse<User>类型接收success方法,那么T就是User类型。

如下:

http://img1.sycdn.imooc.com//climg/5f55d84c0953b29304740056.jpg

同学可以回顾一下之前的泛型课程 https://class.imooc.com/lesson/1440#mid=32912

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 py_builder #1
    我的问题不是 什么叫泛型 我知道什么是泛型,也用得很熟练了 对于上面的问题1: 如图,被调函数根本没有使用到泛型(尽管被调函数的类有泛型,但它里面的这个被调方法没用),,所以可以不指明泛型,不加那两个<T>,,(自己试过了。) 问题2,3: 如果要指明泛型,那么static 方法后面一定要加上泛型,此时返回值ApiResp后面可加可不加,,,如果不是static方法,直接在返回值后面加就行了。 因此我的问题其实就是为什么出现了2个<T>, 实际上一个就可以指明搞掂,而static方法必须加在static后面
    2020-09-08 08:57:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师