<分区>
假设我有以下代码片段
Number n=new Integer(2);
然后当我使用代码时,它显示错误
Class<Number> hi=n.getClass(); //type mismatch error
但是如果下面的代码工作正常
Class<? extends Number> hi=n.getClass();
为什么会这样?请用一些简单而准确的词来解释。
<分区>
假设我有以下代码片段
Number n=new Integer(2);
然后当我使用代码时,它显示错误
Class<Number> hi=n.getClass(); //type mismatch error
但是如果下面的代码工作正常
Class<? extends Number> hi=n.getClass();
为什么会这样?请用一些简单而准确的词来解释。
最佳答案
嗯,Integer
的类是Class<Integer>
这不同于 Class<Number>
.因为n
可以包含任何类型的 Number
, 它的类可以是扩展 Number
的任何类.
关于java - 无法理解 Java 通配符的用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31344327/