【发布时间】:2012-01-19 03:53:57
【问题描述】:
我有这门课:
public class House {
private final Door door;
private final Window window;
private final Roof roof;
@Inject
public House(Door door, Window window, Roof roof) {
this.door = door;
this.window = window;
this.roof = roof;
}
}
其中Door、Window 和Roof 是具体类。现在如果我想为这个场景实现一个模块,我会这样做:
public class HouseModule extends AbstractModule {
@Override
protected void configure() {
bind(Door.class).to(Door.class);
bind(Window.class).to(Window.class);
bind(Roof.class).to(Roof.class);
}
}
但我想知道这是否是绑定具体类的正确方法,或者是否有更简单的方法。我觉得有一种更简单的方法。
编辑
刚刚试了一下,好像不行:
1) Binding points to itself.
at de.tarent.guice.ex._1.HouseModule.configure(HouseModule.java:10)
编辑 2
似乎根本不需要绑定:
Injector injector = Guice.createInjector();
House house = injector.getInstance(House.class);
似乎也有效。
【问题讨论】:
-
您应该提交自己的解决方案作为答案并接受该解决方案。这是列表中的最佳答案。根本不需要任何模块,甚至不需要一个空模块。