title: Java Lambda function feeding with extend type
body: <p>Eclipse is telling me that this:</p>
  
  <pre><code>interface Recursive
  {
      List&lt;? extends Recursive&gt; getSubitems();
  
      default void processRecursive(Consumer&lt;? extends Recursive&gt; f)
      {
          f.accept(this);
          for (Recursive r : getSubitems())
              f.accept(r);
      }
  }
  </code></pre>
  
  <p>is not possible (Error for f.accept(this) and f.accept(r) : The method accept(capture#1-of ? extends Recursive) in the type Consumer is not applicable for the arguments (Recursive))</p>
  
  <p>I am wondering why, since this will extends Recursive, so will r (a recursive), and they can be processed as Recursives.. </p>
  
  <p>It seems to me that this would be perfectly reasonable and predictable behavior.</p>