在kotlin中,为了编写测试,我在setUp阶段的每个测试之前创建了一个guice注入器,然后我尝试在tearDown阶段解除分配:
class MyTestClass {
....
var injector: Injector? = null
...
@Before
fun setUp() {
...
injector = Guice.createInjector(modules)
...
}
@After
fun tearDown() {
...
injector = null
}
@Test
fun myFirstTest() {
myInstance = injector?.getInstance(Key.get(MyClass::class.java))
// use myInstance here
...
}
...
}
我的问题是,在Kotlin的土地上,是否需要这样的解除分配?如果有必要,最好的方法是什么?
答案 0 :(得分:3)
不,这没有必要,甚至没有解除分配。您所做的只是将injector
重新绑定为null。旧的值仍然在没有引用的内存中挂起。垃圾收集器在认为合适时会清理内存。