title: Incompatible types, found List<capture<? extends Model>> only in Java 8
body: <p>I'm currently reviewing changes to an Android application that upgrade the app to use Java 8.</p>
  
  <p>During review, I noticed the following code was underlined as an error:</p>
  
  <pre><code>List&lt;MappableTask&gt; tasks = Observable.fromIterable(taskMapHoldingPresenter.getMappableTasks())
          .filter(isMappableTask)
          .toList()
          .blockingGet();
  </code></pre>
  
  <p>This is now showing the following:</p>
  
  <pre><code>Incompatible Types.
  Required: List&lt;MappableTask&gt;
  Found: List&lt;capture&lt;? extends MappableTask&gt;&gt;
  </code></pre>
  
  <p>The <code>getMappableTasks()</code> method is defined in an interface as the following: </p>
  
  <pre><code>List&lt;? extends MappableTask&gt; getMappableTasks();
  </code></pre>
  
  <p>Note that <code>MappableTask</code> is an interface implemented by various model classes.</p>
  
  <p>How is it that <code>List&lt;MappableTask&gt; list = taskMapHoldingPresenter.getMappableTasks();</code> is not valid?</p>
  
  <p>This code builds as expected. As stated, this error was not shown before upgrading the application to use Java 8. Why is this issue occurring?</p>