Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

AutoCloseable

Интерфейс ресурса, который можно закрыть в try-with-resources.

Доступно с: Java 7

Синтаксис

public interface AutoCloseable {
    void close() throws Exception;
}

Примеры

Ресурсы закрываются в обратном порядке:

record Resource(String name) implements AutoCloseable {
    Resource {
        IO.println("open " + name);
    }
    public void close() {
        IO.println("close " + name);
    }
}
 
void main() {
    try (var a = new Resource("A"); var b = new Resource("B")) {
        IO.println("working");
    }
}

Результат:

open A
open B
working
close B
close A

Примечания

Реализуйте его в своих классах, которые держат файл, соединение или блокировку. В интерфейсе close() объявлен с throws Exception, но в своей реализации можно бросать более узкое исключение или вовсе ничего — тогда catch не понадобится. Наследник Closeable из java.io требует throws IOException.

См. также

  • try-with-resources — Блок `try`, который сам закрывает открытые ресурсы — файлы, соединения, потоки.
  • IOException — Проверяемое исключение для ошибок ввода-вывода: файлов, сети, потоков данных.

Вопросы и ответы по теме

В учебнике

  • try-with-resources — Автоматическое закрытие ресурсов в Java — try-with-resources, интерфейс AutoCloseable, несколько ресурсов, порядок закрытия и подавленные исключения.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.