为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在静态泛型方法的返回类型之前需要类型参数

为什么在静态泛型方法的返回类型之前需要类型参数

人到中年有点甜 2021-09-12 15:58:36
以下noGood方法会产生编译错误,因为它省略了紧接在返回类型之前的形式类型参数T。public static T noGood(T t) {  return t;}有人可以帮助我理解为什么静态泛型方法需要在返回类型之前具有类型参数吗?非静态方法不需要吗?
查看完整描述

3 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

类型参数 ( T) 在您实例化类时声明。因此,实例方法不需要类型参数,因为它是由实例定义的。

static另一方面,方法不属于实例——它们属于类。由于没有可以从中获取类型信息的实例,因此必须为方法本身指定它。


查看完整回答
反对 回复 2021-09-12
?
冉冉说

TA贡献1877条经验 获得超1个赞

T没有定义。修饰符的顺序和返回类型保持不变。


public static <T> T noGood(T t) {

    return t;

}


查看完整回答
反对 回复 2021-09-12
?
潇潇雨雨

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) {

    ...

}


查看完整回答
反对 回复 2021-09-12
  • 3 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信