类型Map 不适用

由于接口,我实现了以下JAVA方法:

 public String importDocument(ImportSource source, Map paramMap); 

当我尝试做以下时,我收到编译警告。 片段:

 paramMap.put("Key", "Value"); 

错误:

方法put(字符串,捕获#1-of?extends Object)在Map类型中不适用于参数(String,String)

为什么?

 ? extends Object 

您正在使用通用通配符。 您无法执行添加操作,因为类类型不是确定的。 你不能添加/放置任何东西(除了null)。

有关使用通配符的更多详细信息,请参阅oracle docs 。

 Collection c = new ArrayList(); c.add(new Object()); // Compile time error 

由于我们不知道c的元素类型代表什么,我们无法向其添加对象。 add()方法接受type E参数,即集合的元素类型。 当实际的类型参数是? ,它代表一些unknown type 。 我们传递给add的任何参数都必须是这种未知类型的子类型。 因为我们不知道它是什么类型,所以我们无法传递任何内容。 The sole exception is null, which is a member of every type