在Guice文档中,有一个Untargetted Binding example:

bind(MyConcreteClass.class)
   .annotatedWith(Names.named("foo"))
   .to(MyConcreteClass.class);

有人可以用简单的英语解释这到底在做什么以及为什么要这么做吗?

最佳答案

它使用实现类MyConcreteClass创建一个以@Named("foo")注释的MyConcreteClass类型的绑定。如果要注入该类型,可以这样做:

@Inject public Bar(@Named("foo") MyConcreteClass object) { ... }

10-04 13:40