Новый/странный синтаксис Java «попробуйте ()»?

Пока возился с пользовательскими параметрами форматирования в Eclipse, в одном из образцов кода я увидел следующий код:

/**
 * 'try-with-resources'
 */
class Example {
    void foo() {
        try (FileReader reader1 = new FileReader("file1"); FileReader reader2 = new FileReader("file2")) {

        }
    }
}

Я никогда не видел tryиспользуется так, и я пишу код на Java уже 9 лет! Кто-нибудь знает, почему вы это сделали? Каков возможный вариант использования -/ выгода от этого?

Другой фрагмент кода, который я видел, показался мне очень полезным сокращением, поэтому я также делюсь им здесь, довольно очевидно, что он делает:

/**
 * 'multi-catch'
 */
class Example {
    void foo() {
        try {
        } catch (IllegalArgumentException | NullPointerException | ClassCastException e) {
            e.printStackTrace();
        }
    }
}
51
задан Dean Rather 11 April 2012 в 12:47
поделиться