title: non-generic Java interface with single generic method with type parameters only on the left side
body: <p>I recently came upon an instance of the following pattern:</p>
  
  <pre><code>public interface IFooFactory {
      &lt;K&gt; Foo&lt;K&gt; create();
  }
  </code></pre>
  
  <p>See <a href="http://shiro.apache.org/static/current/apidocs/" rel="nofollow">here</a> for a concrete example. I don't see what a client programmer is supposed to do in the implementation of <strong>create</strong> other than instantiate <strong>Foo</strong> with a formal type parameter of <strong>Object</strong> or with no formal type parameter at all. I also don't see what's the benefit or type constraint that the framework designer tried to express by defining the interface <strong>IFooFactory</strong> in this way.</p>