title: Put key and value to Map<String, ?> ... cannot be converted to CAP#1
body: <p>I saw some simillar topics but those didn't answer my question and didn't solve my problem.</p>
  <p>I have got method which is part of my authorization process.
  I would like to add some <code>key</code> and <code>value</code> to my <code>Map</code>.
  I've got  a method which looks like:</p>
  <pre><code>@Override
      public OAuth2Authentication extractAuthentication(Map&lt;String, ?&gt; map) {
          OAuth2Authentication authentication = super.extractAuthentication(map);
          ...
      }
  </code></pre>
  <p>If I try to do something like:</p>
  <pre><code> map.put(&quot;authorities&quot;, new ArrayList&lt;&gt;());
  </code></pre>
  <p>compiler always complains that</p>
  <pre><code>incompatible types: cannot infer type arguments for ArrayList&lt;&gt;
              map.put(&quot;authorities&quot;, new ArrayList&lt;&gt;());
                                                  ^
      reason: no instance(s) of type variable(s) E exist so that ArrayList&lt;E&gt; conforms to CAP#1
    where E is a type-variable:
      E extends Object declared in class ArrayList
    where CAP#1 is a fresh type-variable:
      CAP#1 extends Object from capture of ?
  </code></pre>
  <p>only variable which pass is <code>null</code> but I want to add some <code>Collection</code> or another object.</p>
  <p>I don't understand <code>?</code> while I don't know what is it extending from?</p>