Первое, что многим приходит в голову при фразе «вывод типов» – diamond operator
<>
. Он появился в Java с версии 7. Его применяют к конструкторам дженерик классов, чтобы отличать требование автоматического вывода типа от raw type.С Java 9 diamond operator заработал и для анонимных классов.
Для дженерик методов можно указывать параметр явно, но diamond синтаксически недопустим – вывод и так сработает по умолчанию.
В Java 10 для вывода типа локальной переменной добавлено ключевое слово
var
. Работает это так же, как в большинстве современных языков – ключевое слово ставится вместо типа при объявлении.Типы выводимых параметров лямбда-выражения также можно не указывать. С Java 11 вместо типа указывается ключевое слово
var
. Такой синтаксис дает возможность добавлять параметру модификаторы и аннотации.