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

标签 java static-methods jls

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

It is a compile-time error to use the name of a type parameter of any surrounding declaration in the header or body of a class method.

请解释其含义。

最佳答案

这意味着你不能这样做

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) {
    }
}

关于java - Java 语言规范中的静态方法和类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23032381/

相关文章:

java - 打包和部署企业应用程序的现代替代方案?

带有静态数组的java空指针异常

Java 继承 : the strict default-abstract and default-default conflict rules

Java:重载方法解析和可变参数——令人困惑的例子

java - 程序顺序规则在构造函数中起作用之前是否发生?

java - 为什么在没有 SUDO 的情况下运行 Java UI 会破坏 GUI 外观?

java - Spring Boot部署wildfly不起作用

java - Spring Integration - MongoDB 入站 channel 读取相同的数据

c++ - 从静态方法访问类的私有(private)成员变量

.net - 接口(interface)/抽象类中的静态方法