Interface Disposable


  • public interface Disposable
    A resource that can be disposed when waiting for the garbage collector would be overly conservative. Invoking the dispose() method allows any resources held by this object to be released. The result of calling any other method subsequent to a call to this method is undefined.

    Data integrity shall not depend on dispose() method invocation. If some data may need to be flushed to a stream or committed to a database, then a close() method should be used instead.

    Relationship with Closeable
    Some classes may implement both the Disposeable and Closeable interfaces. While very similar, those two interfaces serve slightly different purposes. The Closeable interface closes a stream or a connection, but some classes allow the object to be reused with a different stream. However once an object has been disposed, it can not be used anymore.
    Example: Image­Reader and Image­Writer allow to reuse the same instance many times for reading or writing different images in the same format. New streams can be created, given to the Image­Reader or Image­Writer and closed many times as long as dispose() has not been invoked.
    Another difference is that dispose() does not throw any checked exception. That method may be invoked in a background thread performing cleanup tasks, which would not know what to do in case of failure. Error during dispose() execution should not result in any lost of data.
    Since:
    0.3
    See Also:
    Graphics​.dispose(), Image­Reader​.dispose(), Image­Writer​.dispose()

    Defined in the sis-utility module

    • Method Detail

      • dispose

        void dispose()
        Allows any resources held by this object to be released. The result of calling any other method (other than finalize()) subsequent to a call to this method is undefined.