我正在准备Guice的演示文稿,我计划通过执行单元测试演示Guice的(正确)行为。在下面的测试情况下,我想,以确保正确类型的注射Guice - 测试喷射器的正确行为 - getClass()vs instanceof
@Test
public void shouldInjectCorrectDependencies() {
Injector injector = Guice.createInjector(new ModuleImpl());
House house = injector.getInstance(House.class);
Assert.assertTrue(house.door().getClass() == (WoodenDoor.class));
}
现在,我不知道哪种方法会更好:
- 使用的getClass()来检查的具体类
- 使用instanceof来检查一个类型(和子类型)
我认为这将需要``WoodenDoor.class.isAssignableFrom或更好的`WoodenDoor.class.isInstance((house.door()的getClass())。 house.door())`...但由于你知道你在编译时感兴趣的类型,`house.door()instanceof WoodenDoor`对我来说似乎最好。 – ColinD 2011-12-14 16:54:26