public abstract class AbstractNativeReference
extends java.lang.Object
implements java.lang.AutoCloseable
rocksdb
object.
AbstractNativeReference has the close()
method, which frees its associated C++ object.
This function should be called manually, or even better, called implicitly using a
try-with-resources
statement, when you are finished with the object. It is no longer
called automatically during the regular Java GC process via
Object.finalize()
.
Explanatory note - When or if the Garbage Collector calls Object.finalize()
depends on the JVM implementation and system conditions, which the programmer
cannot control. In addition, the GC cannot see through the native reference
long member variable (which is the C++ pointer value to the native object),
and cannot know what other resources depend on it.
Constructor and Description |
---|
AbstractNativeReference() |
Modifier and Type | Method and Description |
---|---|
abstract void |
close()
Frees the underlying C++ object
|
protected abstract boolean |
isOwningHandle()
Returns true if we are responsible for freeing the underlying C++ object
|
protected abstract boolean isOwningHandle()
public abstract void close()
It is strong recommended that the developer calls this after they have finished using the object.
Note, that once an instance of AbstractNativeReference
has been
closed, calling any of its functions will lead to undefined
behavior.
close
in interface java.lang.AutoCloseable