假设我有以下代码段
Number n=new Integer(2);
然后当我使用代码时,它显示错误
Class<Number> hi=n.getClass(); //type mismatch error
但如果下面的代码工作正常
Class<? extends Number> hi=n.getClass();
为什么会这样?请在一些简单的&amp;准确的话。
答案 0 :(得分:2)
嗯,Integer
的班级是Class<Integer>
,与Class<Number>
不同。由于n
可以包含任何类型的Number
,因此其类可以是任何扩展Number
的类。