释放存储在Java对象中的本机指针?有没有类似于C#的IDisposable?

时间:2015-01-23 18:24:40

标签: java java-native-interface

我正在编写调用C(使用JNI)的Java代码,并将一个类成员的本机指针保存为long

当我在C#中完成此操作时,保存本机指针的类应该实现IDisposable。

在Java中是否应该有类似的东西?

Reed Copsey的

This post在C#中解释了原因:

  

当我们使用本机资源时,我们需要解决两个问题   使用IDisposable的地址。第一个涉及时间 - 如果我们是   使用本机资源,我们想停止使用它,我们应该   一种立即停止使用该资源的方法。第二个涉及到   安全 - 如果我们使用本机资源,现在已经完成了,   我们需要一种方法来确保成功清理资源。   IDis可以帮助解决这两个问题。

1 个答案:

答案 0 :(得分:0)

Object有一个方法finalize,当处置Object时,垃圾收集器会调用该方法。除此之外,Java中没有任何标准。我能想到的唯一可能与之相关的是Window.dispose,它释放系统UI资源。