Руководство по Java 9. Улучшения в try с ресурсами.

В данной статье мы рассмотрим улучшения, касающееся try-with-resources, которое было сделаны в Java 9.
Ранее мы имели возможность декларировать переменные, внутри выражения try.
Вот, как это выглядело до Java 9:


package net.proselyte.java9;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;

public class TryWithResourcesJava8Demo {
    public static void main(String[] args) {
        String string = "This is test string";
        Reader reader = new StringReader(string);
        try (BufferedReader bufferedReader = new BufferedReader(reader)) {
            System.out.println(bufferedReader.readLine());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

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


This is test string

В Java 9 мы можем применить следующий подход:


package net.proselyte.java9;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;

public class TryWithResourcesJava9Demo {
    public static void main(String[] args) {
        String string = "This is test string";
        Reader reader = new StringReader(string);
        BufferedReader bufferedReader = new BufferedReader(reader);
        try (bufferedReader){
            System.out.println(bufferedReader.readLine());
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}

В результате запуска этой программы мы получим следующее:


This is test string

На этом мы заканчиваем обзор try с ресурсами в Java 9.
В следующей статье мы рассмотрим улучшения, касающиеся класса Optional.