Java 从guice私有模块公开映射

Java 从guice私有模块公开映射,java,guice,inject,Java,Guice,Inject,我试图从私有模块中公开一个映射,类似于,但得到一个错误 无法公开带有@com.google.inject.name.Named(value=myMap)注释的()java.util.Map,必须显式绑定它 我编写了以下代码: expose(Map.class).annotatedWith(Names.named(myMap)); @Named("myMap") @Provides @Singleton public Map<String, String> myM

我试图从私有模块中公开一个映射,类似于,但得到一个错误

无法公开带有@com.google.inject.name.Named(value=myMap)注释的()java.util.Map,必须显式绑定它

我编写了以下代码:

expose(Map.class).annotatedWith(Names.named(myMap));

@Named("myMap")
@Provides
@Singleton
public Map<String, String> myMap() {
    // myMap
    return ImmutableMap.<String, String>builder()
            .build();
}
expose(Map.class).annotatedWith(Names.named(myMap));
@命名(“myMap”)
@提供
@独生子女
公共地图myMap(){
//我的地图
返回ImmutableMap.builder()
.build();
}
在另一个课堂上,我注射它,它给出:

没有绑定java.util.Map的实现

请查收。感谢此Guice提供,尤其是您的案例,它在Javadoc中提供了一个很好的代码示例。

感谢此Guice提供,尤其是您的案例,它在Javadoc中提供了一个很好的代码示例