A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gm1314 中级黑马   /  2014-8-3 15:08  /  2129 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 gm1314 于 2014-8-4 14:44 编辑

找不到了

10 个回复

正序浏览
通配符?可以指定泛型类型的上限和下限,而且不用声明。T类型相当于是一个泛型的参数类型,必须要有声明才能使用。
回复 使用道具 举报
gm1314 发表于 2014-8-3 21:29
哦哦    什么时候用T什么时候用?呢

当你想在多个地方使用同一个类型,但又不想写死类型名称时,就用T;如果你只是在某个<>内不想限定死类型名称,那就用?,出了这个<>,?就没有约束力了。
回复 使用道具 举报
?表示“任何一种特定的类型”;T表示某种特定类型,但是使用的时候可以确定
回复 使用道具 举报
T带表T类型,而?代表任意类型
回复 使用道具 举报
fantacyleo 发表于 2014-8-3 17:15
按我的理解,T和?的区别在于,T是一个参数,可以类比于方法的参数,既然是参数,就可以给他传值,也可以在 ...

哦哦    什么时候用T什么时候用?呢:)
回复 使用道具 举报
当类型变量在方法体代码中也需要使用的时候用泛型,仅在签名时用通配符更有效
回复 使用道具 举报
按我的理解,T和?的区别在于,T是一个参数,可以类比于方法的参数,既然是参数,就可以给他传值,也可以在它的作用域中引用它,在这个参数的作用域内,T都表示同一个值。而?只是一个占位符,意思是某个类,但你不可以给?赋值,任意两个?也不代表同一个值
回复 使用道具 举报

见得少呢。习惯性用法把
回复 使用道具 举报
<? extends Person>但你不能写<T extends Person>吧,T可以部分理解为返回值类型也可以写E,随便什么字母都行的,但是要声明才能用。?的话,你把它当作占位符可以理解为某类型对象。

点评

可以写<T extends Person>的  发表于 2014-8-3 17:11
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马