除了将它们装在类中之外,是否有其他方法可以使用原语来实现Cleaner?

时间:2019-04-24 15:09:01

标签: java kotlin kotlin-inline-class

因此,我们在vulkan周围有一个kotlin包装器,该包装器依赖于内联类的vulkan标识符(通常为Long s)

据我了解,Java(9+)Cleaner应该只适用于类。

Here一个例子

我试图对其进行修改,以便与普通图元一起运行

fun main() {
    val cleaner = Cleaner.create()
    for (i in 0..9) {
        val id = Integer.toString(i)
        val vkObject = 0L + i
        cleaner.register(vkObject, CleanerRunnable(id))
    }

    //myObjects are not reachable anymore
    //do some other memory intensive work
    for (i in 1..10000) {
        val a = IntArray(10000)
        try {
            Thread.sleep(1)
        } catch (e: InterruptedException) {
        }

    }
}

但不幸的是没有成功。

所以我的问题是,是否有一种方法可以使Cleaner使用表示本地堆外资源的原语,而不必将它们包装在类中

0 个答案:

没有答案