工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java 9のTry-with-resources改善:よりクリーンなコードへ

try-with-resources文は、1つ以上のリソースを適切に宣言するtry文です。ここでリソースとは、不要になったら閉じるべきオブジェクトのことです。try-with-resources文は、各リソースが処理完了後に確実に閉じられることを保証します。java.lang.AutoCloseableまたはjava.io.Closeableインターフェースを実装するオブジェクトをリソースとして使用できます。

Java 9以前では、リソースをtryの前またはtry文内で宣言する必要がありました。以下の例では、BufferedReaderをリソースとして文字列を読み取り、その後閉じています。

Java 9以前の書き方

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

public class Tester {
    public static void main(String[] args) throws IOException {
        System.out.println(readData("test"));
    }
    
    static String readData(String message) throws IOException {
        Reader inputString = new StringReader(message);
        BufferedReader br = new BufferedReader(inputString);
        try (BufferedReader br1 = br) {  // 新しい変数br1を宣言して使用
            return br1.readLine();
        }
    }
}

出力

test

ここではtry文内でリソースbr1を宣言して使用する必要がありました。Java 9ではこの宣言が不要になり、以下のプログラムで同じ結果が得られます。

Java 9以降の書き方

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

public class Tester {
    public static void main(String[] args) throws IOException {
        System.out.println(readData("test"));
    }
    
    static String readData(String message) throws IOException {
        Reader inputString = new StringReader(message);
        BufferedReader br = new BufferedReader(inputString);
        try (br) {  // 既存の変数brを直接使用可能
            return br.readLine();
        }
    }
}

出力

test

Java 9では、実質的にfinalな変数(一度だけ代入される変数)をtry-with-resourcesで直接使用できるようになり、コードがよりシンプルになりました。

Java

  1. Java例外ハンドリング実践:try-catch-finallyとリソース管理
  2. Java String.length()メソッド:文字列サイズ取得の実例解説
  3. Java String.indexOf()マスター:部分文字列検索と実践例
  4. Java String.charAt()完全解説:構文、戻り値、例外、実例
  5. Java String.compareTo()マスター:構文、ユースケース、実践例
  6. Java String.contains()メソッド:部分文字列チェックの実践例
  7. Java String.endsWith()マスター:文字列サフィックスチェック実例付き
  8. Java BufferedReader でファイル読み込み:実践ガイドと例
  9. Javaで挿入ソート:わかりやすい例とステップバイステップガイド
  10. Javaで選択ソート:ステップバイステップ例と完全コード
  11. Java 8 深掘り学習のための必須リソース集