假设我有:
public class Parent<T extends Child1> {
public Parent() {
}
public static <T extends Number> void test(T t) {
}
}
Child1
是Parent
的子类。
我在这里试图理解的是类范围和方法范围中参数类型T
之间的连接。如果它们的边界彼此完全不同,那么如何允许这两个参数(类&#39;和方法&#39;)被命名为T
?
答案 0 :(得分:6)
方法中定义的类型参数完全独立于类中定义的类型参数。实际上,您必须为静态方法定义类型参数,因为不能在那里使用类级别类型参数。您不能在静态上下文中使用类级别类型参数。这超出了他们的范围。因此,如果删除该方法级别类型参数声明,则会出现编译错误。