Java语言规范中的静态方法和类型参数
-
21-12-2019 - |
题
我在JLS 7中读取了以下句子。
是一个编译时出错,用于使用任何周围的类型参数的名称 类方法的标题或主体中的声明。
请解释其含义。
解决方案
这意味着你不能做
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) {
}
}
. 不隶属于 StackOverflow