Иногда этот (относительно странный) синтаксис необходим, чтобы избежать несоответствия типов.Но как на самом деле называется этот синтаксис?
Пример использования Google Guava (r07):
ImmutableMap определяет метод
public static <K, V> Builder<K, V> builder()
Его можно использовать так:
ImmutableMap<String, String> map =
ImmutableMap.<String, String>builder().put("a", "A").build();
Кстати, встроенная версия:
Builder<String, String> builder = ImmutableMap.builder();
ImmutableMap<String, String> map = builder.put("a", "A").build();