int是基本类型。它并不一个类,所以它也就不会存在 extends Number 类的关系。
Number类的子类有:AtomicInteger, AtomicLong, BigDecimal, BigInteger, Byte, Double, Float, Integer, Long, Short
所以必须要写成与它相关的子类才可以。这里面的<T extends Number> 传人的参数可以是上面的任意子类的类型。编译器不会报错。
你给它传人int类型的数组,当然会编译不通过,因为int类型不符合<T extends Number>这种关系。
当<T extends Object> 时,编译器会把数组当作是一个对象,满足了这种继承关系,所以编译通过。就不会报错了。
|