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在退出時也會清除它的內存,所以不要認爲它會在你的測試完成後繼續存在。) –