无法理解Java通配符的用法?

时间:2015-07-10 15:12:05

标签: java generics

假设我有以下代码段

Number n=new Integer(2);

然后当我使用代码时,它显示错误

Class<Number> hi=n.getClass(); //type mismatch error

但如果下面的代码工作正常

Class<? extends Number> hi=n.getClass();

为什么会这样?请在一些简单的&amp;准确的话。

1 个答案:

答案 0 :(得分:2)

嗯,Integer的班级是Class<Integer>,与Class<Number>不同。由于n可以包含任何类型的Number,因此其类可以是任何扩展Number的类。

相关问题