课程里讲的自定义泛型里,全部只有一种类型了,其它任何类型都不能出现吗?

课程里讲的自定义泛型里,全部只有一种类型了,其它任何类型都不能出现吗?

<? extends Person>与<T extends Person>有什么区别?一个类或方法只能有一个泛型吗?

正在回答

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

1回答

同学你好~

1.<? extends Person>与<T extends Person>在本质上没有任何区别,都是要求传入Person的子类或者其自身。但是使用上有区别,前者由于使用的是通配符,如果是用于集合,那么取出对象时无法书写数据类型,但是后者可以,数据类型就是“T”。

2.一个类或者方法中,可以有多个泛型,数量不限。

祝学习愉快~

  • 坨坨儿 提问者 #1

    1、没有解决,我上图说吧,课程的该节练习题,用?就可以,用T就报错,还不知道错哪?

    2、如果多个泛型,怎么定义,比如有T和E,那这个类或方法里还能不能出现int 、String、等这些?

    2023-07-18 14:41:20
  • 坨坨儿 提问者 #2

    https://img1.sycdn.imooc.com//climg/64b63425097284ab18590993.jpg

    https://img1.sycdn.imooc.com//climg/64b6342609bd700b18931018.jpg


    2023-07-18 14:41:52
  • 好帮手慕小蓝 回复 提问者 坨坨儿 #3

    同学你好,使用标识符“T”是需要进行声明的,声明的方式是在返回值类型前书写“<T>”,否则就会无法识别标识符而报错。

    并且对“T”类型进行约束的语句也是写在声明的位置的,如下代码:

    public <T extends Animal> void allPlayGames(List<T> list){
    }

    该方法表示,参数List中元素必须是T类型的元素,而T类型必须是Animal或者Animal的子类型。

    祝学习愉快~

    2023-07-18 15:08:29
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
Java工程师 2024版
  • 参与学习       2020    人
  • 提交作业       1249    份
  • 解答问题       1202    个

2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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