泛型书写位置的问题
老师,泛型作为方法参数书写位置为什么被放在了方法修饰符位置上面,为什么不是写在方法的括号里?泛型定义的位置有什么要求吗?
这里的泛型是不是定义了T所表示的类型?
在定义泛型T时,T能否写成任意名字?
4
收起
正在回答
1回答
同学你好,当泛型应用在方法上时,可以应用于返回值类型、参数列表和方法实现体内,当上述三处中的两处或者以上会使用同一个泛型约束时,需要在方法声明上进行声明,即写在返回值类型之前。这表示,在这个位置之后的所有该通配符,都表示同一个泛型。举个简单的例子:
public <T> T method(T t) { return t; }
上面代码中“<T>”表示在方法中定义了一个泛型通配符T,该通配符在后续返回值类型、参数列表和方法实现体内都表示同一个数据类型,例如传入参数时(T t)传入的是(String s),那么这个方法中所有的通配符T都会被替换为String。
所以同学的三个问题,答案分别为:
1.不一定要写在括号里,写在括号里表示只是应用于参数列表,其他位置也是可以用的。位置要求就是上面描述的四个位置;
2.通配符T表示所有类型,当被某一个实际类型替换之后就是固定类型了;
3.可以是任意名字,但是标识符规范中要求是大写字母。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星