title: Is <T> List<? extends T> f() a useful signature
body: <p>Is <code>&lt;T&gt; List&lt;? extends T&gt; f()</code> a useful signature? Is there any problem with it / using it?</p>
  
  <p>This was an interview question. I know this:</p>
  
  <ol>
  <li>It compiles fine</li>
  <li>Use it like <code>List&lt;? extends Number&gt; lst = obj.&lt;Number&gt;f()</code>, and then I can call on lst only those <em>List</em> methods that do not contain <em>T</em> in their signatures (say, <em>isEmpty(), size(),</em> but not <em>add(T), remove(T)</em></li>
  </ol>
  
  <p>Does that fully answer the question?</p>