Почему я не могу передать встроенную лямбду в try-with-resourcesJAVA

Программисты JAVA общаются здесь
Anonymous
Почему я не могу передать встроенную лямбду в try-with-resources

Сообщение Anonymous »

Помогите мне понять, почему следующий код не компилируется. AutoCloseable — это единый интерфейс абстрактного метода, и я могу назначить его лямбда-выражению, но не в контексте try-with-resources:

Код: Выделить всё

class Main {
public static void main(String[] args) {
try (AutoCloseable test = () -> System.out.println("Closing")) {}
}
}
Я получаю следующую ошибку компиляции и пытаюсь понять — почему?

ошибка: несообщенное исключение Исключение; должно быть перехвачено или объявлено, чтобы
сгенерировать
исключение, вызванное неявным вызовом close() для
переменной 'test'


Подробнее здесь: https://stackoverflow.com/questions/790 ... -resources

Вернуться в «JAVA»