Method in the type Map<String,capture#1-of ? extends Object> is not applicable
compiler-errors, generics, java
Solution
? extends Object
You are using generic wildcard. You cannot perform add operation as class type is not determinate. You cannot add/put anything(except null).
For more details on using wildcard you can refer oracle docs.
Collection<?> c = new ArrayList<String>();
c.add(new Object()); // Compile time error
Since we don't know what the element type of c stands for, we cannot add objects to it. The `add()` method takes arguments of `type E`, the element type of the collection. When the actual type parameter is `?`, it stands for some `unknown type`. Any parameter we pass to add would have to be a subtype of this unknown type. Since we don't know what type that is, we cannot pass anything in. `The sole exception is null, which is a member of every type`.
Problem
I have the following `JAVA` method implemented due a interface: ``` public String importDocument(ImportSource source, Map<String, ? extends Object> paramMap); ``` When i try to do following, i get an compile warning. Snippet: ``` paramMap.put("Key", "Value"); ``` Error: The method put(String, capture#1-of ? extends Object) in the type Map is not applicable for the arguments (String, String) Why?