0
在科特林,编写测试,我在建立阶段每个测试之前创建一个吉斯注射器,然后我尝试释放它在拆卸阶段:重新分配在科特林可变
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的土地上,这样的释放是必要的吗?如果有必要,最好的办法是什么?
嗯,有没有一种方法来构建代码,以便我可以确定注入器是从内存中清除的呢? – breezymri
不是。这是JVM的设计决定。它为你管理记忆,并且通常相当擅长。试图颠覆它通常会导致严重的性能和内存问题。只要你确定完成了与资源的连接,你就不需要从内存中清除它。 (JVM在退出时也会清除它的内存,所以不要认为它会在你的测试完成后继续存在。) –