I/O 初級

実質的にfinalな変数をtry-with-resourcesで直接使用する。

✕ Java 8
Connection conn = getConnection();
// Must re-declare in try
try (Connection c = conn) {
    use(c);
}
✓ Java 9+
Connection conn = getConnection();
// Use existing variable directly
try (conn) {
    use(conn);
}
このコードに問題がありますか? お知らせください。
🧹

再宣言不要

既存の変数名をそのまま使えます。

📖

混乱が減る

tryブロック内に別の変数名が不要です。

📏

簡潔

行数が減り、同じリソース安全性が保たれます。

旧来のアプローチ
変数の再宣言
モダンなアプローチ
実質的にfinalな変数
JDKバージョン
9
難易度
初級
try-with-resourcesの改善
利用可能

JDK 9(2017年9月)以降、広く利用可能

Java 9では実質的にfinalな変数を再宣言なしにtry-with-resourcesで直接使用できるようになりました。tryブロックの外でリソースを作成した場合にすっきりします。

共有 𝕏 🦋 in