Back to questions
Junior — Middle
59
Какие параметры и свойства должны быть у ресурсов, чтобы они могли автоматически освобождаться или закрываться?
Answer from AI
sobes.tech AI
В Java для автоматического освобождения или закрытия ресурсов класс должен реализовывать интерфейс AutoCloseable или Closeable. Это позволяет использовать ресурс в конструкции try-with-resources, которая гарантирует вызов метода close() после завершения работы с ресурсом, даже если возникло исключение.
Основные требования:
- Реализация метода
close(), который освобождает ресурс. - Отсутствие необходимости явно вызывать
close()— это делает try-with-resources.
Пример:
class MyResource implements AutoCloseable {
public void doSomething() {
System.out.println("Работа с ресурсом");
}
@Override
public void close() {
System.out.println("Ресурс закрыт");
}
}
public class Main {
public static void main(String[] args) {
try (MyResource res = new MyResource()) {
res.doSomething();
} // здесь автоматически вызывается res.close()
}
}