Java语言规范中的静态方法和类型参数

时间:2014-04-12 15:30:48

标签: java static-methods jls

我在JLS 7中读到了以下句子。

  

使用任何周围的类型参数的名称是编译时错误   在类方法的标题或正文中声明。

请解释其含义。

1 个答案:

答案 0 :(得分:5)

这意味着你无法做到

class Test<T> {
    static void f(T a) {
    }
}

你必须做

class Test<T> {
    static <T> void f(T a) {
    }
}

静态方法的泛型类型与类或其他方法的泛型类型无关。

所以你甚至可以做像

这样的事情
class Test {
    static <A, B, C> void f(A a, B b, C c) {
    }
}