java - 除了在类中装箱之外,有没有办法用原语实现清洁器?
问题描述
所以,我们有一个围绕vulkan的 kotlin 包装器,它依赖于 vulkan 标识符(通常是Long
s)的内联类
据我所知,Java(9+)Cleaner
应该只适用于类。
这里有一个例子
我试图修改它以使用普通原语运行
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
使用表示本机堆外资源的原语,而不必将它们包装在类中
解决方案
推荐阅读
- c# - 如何避免在我的 C# 代码中执行许多已执行的 gremlinqueries?
- laravel - 如何在 With() 中编写子查询?
- c++ - 在特定输入中的数组比较程序中出现错误
- sql - 查询结果不适用于 PostgreSQL 中的数组类型
- eclipse - 如何将 JUnit5 jupiter.api_5.3.1 更新为 jupiter.api_5.4.2?
- reactjs - 任何方式自定义 TabBar 具有透明背景?
- c# - 从共享的 Google 云端硬盘下载共享文件
- python - 如何使用flask SQLAlchemy从mysql中获取有限数量的行?
- apache-camel - 为什么 Aries Blueprint 没有为 camel-cxf 和 camel-blueprint 注册命名空间处理程序?
- python - python 中 Crypto.Cipher.IDEA 模块中的错误