我有一个具有以下绑定(bind)的模块
bind(BaseAbstract.class).to(Concrete.class).in(Scopes.SINGLETON);
bind(Concrete.class).toProvider(.....);
当我要求 Guice 提供两个类时,一个需要 base,一个需要 Concrete,创建了两个单独的 Concrete 对象。
injector.getInstance(INeedABaseAbstract.class);
injector.getInstance(INeedAConcrete.class);
我只想要一个单一的 Concrete 实例,Guice 将它提供给需要 BaseAbstract 或 Concrete 的类。
最佳答案
您将 BaseAbstract
绑定(bind)为 Singleton
而不是 Concrete
。试试这个:
bind(BaseAbstract.class).to(Concrete.class);
bind(Concrete.class).toProvider(ConcreteProvider.class).in(Scopes.SINGLETON);
关于java - Guice 将抽象基类绑定(bind)到具体类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25492831/