0
我開始將Google Guice用於我的日常編程任務。我需要將一個現有的對象傳遞給Injector來初始化對象圖,所以我使用方法Injector#injectMembers(instance)來完成它。但我不確定它是否有效,所以我寫了一個單元測試,但沒有按照我的預期工作。我錯過了什麼?我使用Guice 3Google Guice的InjectMembers()方法實際上不起作用嗎?
public class Login_Should {
@Test
public void testName() throws Exception {
Login login = new Login();
Injector injector = Guice.createInjector(new LoginModule());
injector.injectMembers(login);
LoginWrapper caller = injector.getInstance(LoginWrapper.class);
assertEquals(login.getName(), caller.getName());
}
}
public class Login {
private int random;
public Login() {
this.random = new Random().nextInt();
}
public String getName() {
return "Mr. A" + random;
}
}
public class LoginWrapper {
private Login login;
@Inject
public LoginWrapper(Login login) {
this.login = login;
}
public String getName() {
return login.getName();
}
}
public class LoginModule extends AbstractModule{
@Override
protected void configure() {
bind(LoginWrapper.class);
}
}
我很困惑這一點。謝謝你的回答。我也看到這個問題也可以通過使用@Provides註解來解決。 – 2012-03-15 12:53:06