一尘不染

Java泛型类中的静态方法?

java

在Java中,我希望具有以下内容:

class Clazz<T> {
  static void doIt(T object) {
    // shake that booty
  }
}

但是我明白了

Cannot make a static reference to the non-static type T

我对基本用途以外的泛型没有什么了解,因此对此没有多大意义。我无法在互联网上找到有关该主题的很多信息,这无济于事。

有人可以通过类似的方式澄清这种使用是否可行吗?另外,为什么我最初的尝试失败了?


阅读 975

收藏
2020-03-06

共1个答案

一尘不染

你不能在静态方法或静态字段中使用类的泛型类型参数。该类的类型参数仅在实例方法和实例字段的范围内。对于静态字段和静态方法,它们在类的所有实例之间共享,甚至在不同类型参数的实例之间也是如此,因此显然,它们不能依赖于特定的类型参数。

看来你的问题似乎不需要使用类的type参数。如果你更详细地描述你要尝试做的事情,也许我们可以帮助你找到一种更好的方法。

2020-03-06