我不知道如何在Kotlin中释放对象的非null变量。以下代码是TextView列表。它被初始化为非null对象。
class aaa{
var DenomList: MutableList<TextView> = mutableListOf()
var DenomPCSList: MutableList<TextView> = mutableListOf()
var DenomAmountList: MutableList<TextView> = mutableListOf()
var DenomNotationList: MutableList<TextView> = mutableListOf()
var DenomAmountNotationList: MutableList<TextView> = mutableListOf().
}
我想在上面的代码中释放垃圾收集的对象,以保护Kotlin中的内存泄漏。请给我一些信息。
答案 0 :(得分:1)
要使对象符合垃圾回收条件,下面列出的选项很少:
1)删除不再使用的特定元素。 e.g:
list.remove
2)清除列表中的所有元素
list.clear
3)将整个列表指定为null(在更改为null-null类型后,如果适用)
你需要用来制作合适的那个。
答案 1 :(得分:0)
您可以将它们重新分配到其他列表。如果需要尽量减少内存使用,甚至作弊:
// at top-level, outside any class, or in an object
private val NOT_REALLY_MUTABLE: MutableList<Any> = Arrays.asList<Any>()
fun <T> release() = NOT_REALLY_MUTABLE as MutableList<T>
// in aaa
DenomList = release()
这种方式release
不会分配任何内容,只是删除对现有列表的引用,并可能允许垃圾收集。
但是做这样的事情以“防止内存泄漏”应该很少是必要的,并且你不应该在代码不复杂的情况下复杂化。