title: Is this code sample really returning the right parameterized types?
body: <p>I've read the <a href="http://codemunchies.com/2009/10/beautiful-code-with-google-collections-guava-and-static-imports-part-1/" rel="nofollow noreferrer">Beautiful code with Google Collections, Guava and static imports</a> article about Java collections, and the following snippet got my attention:</p>
  
  <pre><code>Map&lt;String, Map&lt;Long, List&lt;String&gt;&gt;&gt; map = Maps.newHashMap();
  </code></pre>
  
  <p>The thing is, I don't understand how it's possible that the <code>newHashMap</code> method can return a <code>Map&lt;String,Map&lt;Long, List&lt;String&gt;&gt;&gt;</code>. How did they write this code? When did it became possible? I lived under the impression that you need to explicitly declare the generics parameters in the constructor call. </p>