泛型书写位置的问题

泛型书写位置的问题

图片描述
老师,泛型作为方法参数书写位置为什么被放在了方法修饰符位置上面,为什么不是写在方法的括号里?泛型定义的位置有什么要求吗?
这里的泛型是不是定义了T所表示的类型?
在定义泛型T时,T能否写成任意名字?

正在回答

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

1回答

同学你好,当泛型应用在方法上时,可以应用于返回值类型、参数列表和方法实现体内,当上述三处中的两处或者以上会使用同一个泛型约束时,需要在方法声明上进行声明,即写在返回值类型之前。这表示,在这个位置之后的所有该通配符,都表示同一个泛型。举个简单的例子:

public <T> T method(T t) {
    return t;
}

上面代码中“<T>”表示在方法中定义了一个泛型通配符T,该通配符在后续返回值类型、参数列表和方法实现体内都表示同一个数据类型,例如传入参数时(T t)传入的是(String s),那么这个方法中所有的通配符T都会被替换为String。

所以同学的三个问题,答案分别为:

1.不一定要写在括号里,写在括号里表示只是应用于参数列表,其他位置也是可以用的。位置要求就是上面描述的四个位置;

2.通配符T表示所有类型,当被某一个实际类型替换之后就是固定类型了;

3.可以是任意名字,但是标识符规范中要求是大写字母。

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
计算机基础课
  • 参与学习       235    人
  • 解答问题       159    个

1000位程序员+大厂HR联袂推荐,面向所有程序员的计算机核心知识体系,优惠中~

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

在线咨询

领取优惠

免费试听

领取大纲

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