小编Roh*_*rni的帖子

Guice 方法注入错误:“无法为 <class> 创建绑定。它已在一个或多个子注入器或私有模块上配置”

我有以下课程,其中我需要使用 Guice 进行方法注入。

@Singleton
public class A {

    private final Injector injector;

    @Inject
    public A(Injector injector) {
       this.injector = injector;
    }

    public void method1() {
        ...
        final XInterface x = this.injector.getInstance(Key.get(XInterface.class, Names.named("provideX")));
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

该模块包含以下提供的方法:

public class MyModule extends AbstractModule {

    @Override void configure() {
        // no binding and scope for class A
    }

    @Provides
    @Named("provideX")
    public XInterface provide(@Named("isTest") boolean isTest, X x, XMock xMock) {
        return isTest ? xMock : x;
    }
}
Run Code Online (Sandbox Code Playgroud)

同一模块中isTest有一个提供者,在本次讨论中可以忽略。

现在,A 类中的注入给出了以下错误: …

java dependency-injection guice

5
推荐指数
0
解决办法
4294
查看次数

标签 统计

dependency-injection ×1

guice ×1

java ×1