title: Is there benefit in a generified interface?
body: <p>Recently in an <a href="https://stackoverflow.com/questions/4440198/refactoring-advice-maps-to-pojos/4440371#4440371">answer</a> it was suggested to me that this:</p>
  
  <pre><code>public interface Operation&lt;R extends OperationResult, P extends OperationParam&gt; {
  
      public R execute(P param);
  }
  </code></pre>
  
  <p>Is better than this:</p>
  
  <pre><code>public interface Operation {
  
      public OperationResult execute(OperationParam param);
  }
  </code></pre>
  
  <p>I however can't see any benefit in using the first code block over the second one ...</p>
  
  <p>Given that both <code>OperationResult</code> and <code>OperationParam</code> are interfaces an implementer needs to return a derived class anyway and this seems quite obvious to me.</p>
  
  <p>So do you see any reason the use the first code block over the second one ?</p>