以下noGood方法会产生编译错误,因为它省略了紧接在返回类型之前的形式类型参数T。public static T noGood(T t) { return t;}有人可以帮助我理解为什么静态泛型方法需要在返回类型之前具有类型参数吗?非静态方法不需要吗?
3 回答
扬帆大鱼
TA贡献1799条经验 获得超9个赞
类型参数 ( T
) 在您实例化类时声明。因此,实例方法不需要类型参数,因为它是由实例定义的。
static
另一方面,方法不属于实例——它们属于类。由于没有可以从中获取类型信息的实例,因此必须为方法本身指定它。
潇潇雨雨
TA贡献1833条经验 获得超4个赞
当您使用泛型时,您需要使用<>符号声明它们
在一个班
public class Foo<T, U, V>{
}
在方法中,在返回类型之前
public static <T, U extends Number, V> T foo(T t) {
U u = ..;
...
}
public static <T> int foo(T t) {
...
}
添加回答
举报
0/150
提交
取消