我在JLS 7中读到了以下句子。
使用任何周围的类型参数的名称是编译时错误 在类方法的标题或正文中声明。
请解释其含义。
答案 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) {
}
}