Ulepszenie try-with-resources
Używaj istniejących zmiennych efektywnie finalnych bezpośrednio w try-with-resources.
Porównanie kodu
✕ 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ć.
Dlaczego nowoczesne podejście wygrywa
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
Wsparcie JDK
Ulepszenie try-with-resources
Dostępne
Szeroko dostępne od JDK 9 (wrzesień 2017)
Jak to działa
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.
Powiązana dokumentacja
Dowód