为什么下面的代码给出了编译时错误.
Map<String,? extends Object> inputMap =
new HashMap<String, ? extends Object>();
Run Code Online (Sandbox Code Playgroud)
编译时错误.
无法实例化该类型
HashMap<String,? extends Object>
我想要一个以String作为键的映射,并将任何对象作为值
这是因为您需要指定HashMap应包含的值的类型.基本上,在实例化类时不能使用通配符.
这工作正常:
Map<String, ? extends Object> inputMap = new HashMap<String, Object>();
Run Code Online (Sandbox Code Playgroud)
然而,说?应该扩展Object是多余的,因为一切都扩展了对象(你当然可能有其他东西而不是Object真正的代码).
?并不意味着"接受任何对象".它意味着"采取特定类型的对象,恰好是未知的",这在实际创建容器时没有意义.
试试这个:
Map<String,Object> inputMap = new HashMap<String,Object>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |