I/O Początkujący

Używaj istniejących zmiennych efektywnie finalnych bezpośrednio w 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);
}
Widzisz problem z tym kodem? Daj nam znać.
🧹

Bez ponownej deklaracji

Używaj istniejącej nazwy zmiennej bezpośrednio.

📖

Mniej zamieszania

Brak oddzielnej nazwy zmiennej wewnątrz bloku try.

📏

Zwięzłość

Mniej linii, takie samo bezpieczeństwo zasobów.

Stare podejście
Ponowna deklaracja zmiennej
Nowoczesne podejście
Efektywnie finalna
Od JDK
9
Poziom trudności
Początkujący
Ulepszenie try-with-resources
Dostępne

Szeroko dostępne od JDK 9 (wrzesień 2017)

Java 9 pozwala na używanie zmiennych efektywnie finalnych bezpośrednio w try-with-resources bez ponownej deklaracji. Jest to czytelniejsze, gdy zasób został utworzony poza blokiem try.