Inferencja typów z var
Używaj var do inferencji typów zmiennych lokalnych, mniej szumu i to samo bezpieczeństwo typów.
Porównanie kodu
✕ Java 8
Map<String, List<Integer>> map =
new HashMap<String, List<Integer>>();
for (Map.Entry<String, List<Integer>> e
: map.entrySet()) {
// verbose type noise
}
✓ Java 10+
var map = new HashMap<String, List<Integer>>();
for (var entry : map.entrySet()) {
// clean and readable
}
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
Mniej boilerplate
Nie trzeba powtarzać złożonych typów generycznych po obu stronach przypisania.
Lepsza czytelność
Skupiasz się na nazwach zmiennych i wartościach, a nie na deklaracjach typów.
Nadal bezpieczne typowanie
Kompilator wywnioskuje i egzekwuje dokładny typ już podczas kompilacji.
Stare podejście
Jawne typy
Nowoczesne podejście
Słowo kluczowe var
Od JDK
10
Poziom trudności
Początkujący
Wsparcie JDK
Inferencja typów z var
Dostępne
Szeroko dostępne od JDK 10 (marzec 2018)
Jak to działa
Od Java 10 kompilator wywnioskuje typ zmiennej lokalnej na podstawie prawej strony przypisania. To ogranicza wizualny szum bez utraty bezpieczeństwa typów. Używaj var, gdy typ jest oczywisty z kontekstu.
Powiązana dokumentacja