C# supports disposable pattern for deterministic garbage collection using the dispose pattern.
Is there such pattern for java?
Java 7 has autoclosable, which you can use with try finally blocks to invoke the close method.
What about versions prior to 7?
Is there a disposable pattern (deterministic garbage collection) for Java 5 or 6?
The closest prior to Java 7 is just “manual” try/finally blocks:
The
usingstatement was one of the things I found nicest about C# when I first started using C# 1.0 from a Java background. It’s good to see it finally in Java 7 🙂You should also consider
Closeablesin Guava – it allows you to not worry about whether or not a reference is null (just like ausingstatement does) and optionally “logs and swallows” exceptions thrown when closing, to avoid any such exception from effectively “overwriting” an exception thrown from the try block.