title: java generics - parameters cannot be applied to method
body: <p><br>
  I can't seem to figure out why a method call I'm trying to make doesn't work.
  <br>
  I've looked much around SO before asking this, and while there are (many) threads about similar problems, I couldn't find one that quite fits my problem..
  <br>
  I have the following code:</p>
  
  <p>(in file Processor.java:)</p>
  
  <pre><code>public interface Processor
  {
      Runner&lt;? extends Processor&gt; getRunner();
  }
  </code></pre>
  
  <p>(in file Runner.java:)</p>
  
  <pre><code>public interface Runner&lt;P extends Processor&gt;
  {
      int runProcessors(Collection&lt;P&gt; processors);
  }
  </code></pre>
  
  <p>(in some other file, in some method:)</p>
  
  <pre><code>Collection&lt;? extends Processor&gt; processorsCollection = ...;
  Runner&lt;? extends Processor&gt; runner = ...;
  runner.runProcessors(processorsCollection);
  </code></pre>
  
  <p><br>
  IntelliJ marks the last line as an error:
  <br>
  "RunProcessors (java.util.Collection>) in Runner cannot be applied to (java.util.Collection>)".
  <br>
  I can't figure out whats wrong with what I did, especially since the error message is not quite clear..
  <br>
  <br>
  any suggestions?
  <br>
  <br>
  thanks.</p>