假设我有:
public class Parent<T extends Child1> {
public Parent() {
}
public static <T extends Number> void test(T t) {
}
}
Child1
是Parent
的子类。
我在这里试图理解的是类作用域和方法作用域中参数类型 T
之间的联系。如果两个参数(类的和方法的)的边界完全不同,如何允许将它们命名为 T
?
最佳答案
方法中定义的类型参数完全独立于类中定义的类型参数。事实上,您必须为静态方法定义类型参数,因为类级类型参数不能在那里使用。您不能在静态上下文中使用类级类型参数。那超出了他们的范围。因此,如果删除该方法级类型参数声明,则会出现编译错误。
关于java - 泛型类中的泛型静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29713108/