title: How to create implicit generic bindings with Guice?
body: <p>Here is my problem, I have a <code>Client</code> interface that has got a <code>&lt;T&gt; Prop&lt;T&gt; getProp(Class&lt;T&gt;)</code> method. A <code>PropKey</code> may be constructed with <code>PropKey.of(Class)</code>.</p>
  
  <p>I inject an instance of <code>Client</code> in a module like this <code>bind(Client.class).to(ClientImpl.class).in(Scopes.SINGLETON);</code> and I wanna be able to inject <code>Prop</code> like this :</p>
  
  <pre><code>public class MyService implements Service {
      @Inject Client client;
      @Inject Prop&lt;User&gt; user;
  }
  </code></pre>
  
  <p>How can I tell Guice that injection of <code>Prop&lt;User&gt;</code> will lead to <code>client.getProp(User.class)</code>. I primarily searched how to do this via SPI but I didn't find any way to get unknown binding. I also reviewed Jukito which is known to be a quality project using SPI.</p>