Я новичок в Google Guice.На данный момент кажется, что каждый раз, когда создается новая привязка, создается новый объект.Если у вас есть два одинаковых объекта в качестве параметра конструктора (или поля и т. Д.) В двух разных классах, как повторно использовать первый экземпляр объекта в качестве аргумента конструктора второго объекта?Например:
public interface MyInterfaceA{
//Method declarations
}
public class MyClassA implements MyInterfaceA{
private MyInterfaceC myField;
@Inject
public MyClassA(MyInterfaceC myField){
this.myField = myField;
}
//Methods, etc.
}
public interface MyInterfaceB{
//Method declarations
}
public class MyClassB implements MyInterfaceB{
private MyInterfaceC myField;
@Inject
public MyClassB(MyInterfaceC myField){
this.myField = myField;
}
//Methods, etc.
}
public interface MyInterfaceC{
//Method declarations
}
public class MyClassC implements MyInterfaceC{
@Inject
public MyClassC(){
//Implementation
}
//Methods, etc.
}
public class MyModule extends AbstractModule{
@Override
protected void configure(){
bind(MyInterfaceA.class).to(MyClassA.class);
bind(MyInterfaceB.class).to(MyClassB.class);
bind(MyInterfaceC.class).to(MyClassC.class);
}
}
В этом примере я думаю, что конструктор MyClassA вызывается через Guice с новым экземпляром MyClassC,и конструктор MyClassB также вызывается с новым экземпляром MyClassC.Как мне сначала вызвать конструктор MyClassA с новым экземпляром MyClassC, но затем конструктор MyClassB с тем же экземпляром MyClassC с Guice?