类型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
。