Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Guice将抽象基类绑定到具体类_Java_Guice - Fatal编程技术网

Java Guice将抽象基类绑定到具体类

Java Guice将抽象基类绑定到具体类,java,guice,Java,Guice,我有一个具有以下绑定的模块 bind(BaseAbstract.class).to(Concrete.class).in(Scopes.SINGLETON); bind(Concrete.class).toProvider(.....); 当我要求Guice为我提供两个类时,一个需要基础,一个需要具体,两个独立的具体对象被创建 injector.getInstance(INeedABaseAbstract.class); injector.getInstance(INeedAConcrete.

我有一个具有以下绑定的模块

bind(BaseAbstract.class).to(Concrete.class).in(Scopes.SINGLETON);
bind(Concrete.class).toProvider(.....);
当我要求Guice为我提供两个类时,一个需要基础,一个需要具体,两个独立的具体对象被创建

injector.getInstance(INeedABaseAbstract.class);
injector.getInstance(INeedAConcrete.class);

我只需要Guice提供给需要BaseAbstract或Concrete的类的一个具体实例。

您将
BaseAbstract
绑定为
单例,而不是
具体。试试这个:

bind(BaseAbstract.class).to(Concrete.class);
bind(Concrete.class).toProvider(ConcreteProvider.class).in(Scopes.SINGLETON);