сегодня мы говорили о преимуществах Java 7 в нашей компании. Начиная с Java 7 есть возможность определить следующую строку
Map<String, List<String>> myMap = new HashMap<String, List<String>>();
as
Map<String, List<String>> myMap = new HashMap<>();
Мы долго обсуждали описанную выше тему. У некоторых из нас было мнение, что это вывод типа (как ключевое слово var
в C#) и тип будет вычисляться во время выполнения, другие думали, что это просто более простой способ объявить какую-то переменную и никакого вывода нет, потому что тип известен по контексту во время компиляции.
Пожалуйста, дайте разъяснения. Как работает техника?
РЕДАКТИРОВАТЬ: Официальная документация Oracle не содержит точной документации по этому поводу. http://docs.oracle.com/javase/tutorial/java/generics/genTypeInference.html