Java 通配符实例化中比声明中更宽松的限制

Java 通配符实例化中比声明中更宽松的限制,java,generics,bounded-wildcard,Java,Generics,Bounded Wildcard,考虑以下类别: class A<T extends Number> { } A类{ } 我想知道为什么这一行编译成功 A<? extends Object> a = new A<Integer>(); A class B { static <T extends Object> void m(A<T> a) {} }

考虑以下类别:

class A<T extends Number> {
} 
A类{
} 
我想知道为什么这一行编译成功

A<? extends Object> a = new A<Integer>();
A
class B {
  static <T extends Object> void m(A<T> a) {}
}