您必须使用
TypeLiteral:
import com.google.inject.AbstractModule;import com.google.inject.TypeLiteral;public class MyModule extends AbstractModule { @Override protected void configure() { bind(new TypeLiteral<Repository<User>>() {}).to(UserRepository.class); }}要获取的实例
Cursor<T>,
Injector则需要:
import com.google.inject.Guice;import com.google.inject.Injector;import com.google.inject.Key;import com.google.inject.TypeLiteral;public class Main { public static void main(String[] args) { Injector injector = Guice.createInjector(new MyModule()); Cursor<User> instance = injector.getInstance(Key.get(new TypeLiteral<Cursor<User>>() {})); System.err.println(instance.repository); }}在FAQ中有更多细节。



