首页 > 解决方案 > 为什么在静态泛型方法的返回类型之前需要类型参数

问题描述

以下noGood方法会产生编译错误,因为它在返回类型之前省略了形式类型参数T

public static T noGood(T t) {
  return t;
}

有人可以帮我理解为什么静态泛型方法需要在返回类型之前有一个类型参数吗?非静态方法不需要吗?

标签: javagenericsmethodsstaticgeneric-method

解决方案


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

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


推荐阅读