try-with-resources文は便利ですよね。
こんな感じで、自作クラスでも使えます。
AutoCloseableを実装したクラスを使って、try-with-resourcesで書くサンプル
何らかの処理をするクラスに、AutoCloseableインターフェースを実装。
何らかの処理をするクラスを、try-with-resourcesで記述してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public class AutoCloseableTest implements AutoCloseable { public static void main(String[] args) { try(AutoCloseableTest at = new AutoCloseableTest()) { at.execute(); } catch(Exception e) { e.printStackTrace(); } } public void execute() throws Exception { System.out.println("何らかの処理"); } public void close() throws Exception { System.out.println("何らかの終了処理"); } } |
実行結果
何らかの処理をするクラスの実行結果(+クローズ)が出力されます。
1 2 | 何らかの処理 何らかの終了処理 |
サンプルの解説
try-with-resources文は、AutoCloseableインターフェースを実装したクラスで使うことができます。
close()メソッドで終了処理を記述すれば、try-with-resourcesを抜けるときに、自動的に終了処理が実行されます。