Алмазный оператор <>
Алмазный оператор <> - это синтаксическая конструкция в Java,
которая позволяет опустить параметры типа в правой части выражения
при создании объекта обобщенного класса. Компилятор сам выводит
нужные типы из контекста, то есть из типа переменной, в которую
присваивается объект. Алмазный оператор был введен в Java 7 и
помогает избежать дублирования типов в коде. Параметры типа
указываются только слева от оператора присваивания, а справа
вместо них пишется <>.
Синтаксис
ClassName<Type> variable = new ClassName<>();
Пример
Давайте создадим список строк без повторного указания типа справа от оператора присваивания:
import java.util.ArrayList;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<String> list = new ArrayList<>();
list.add("abcde");
System.out.println(list);
}
}
Результат выполнения кода:
["abcde"]
Пример
Давайте создадим карту, где ключом будет строка, а значением - целое число:
import java.util.HashMap;
import java.util.Map;
public class Main
{
public static void main(String[] args)
{
Map<String, Integer> map = new HashMap<>();
map.put("abcde", 12345);
System.out.println(map);
}
}
Результат выполнения кода:
{abcde=12345}
Пример
Алмазный оператор работает и при передаче объекта в параметр метода, если тип выводится из сигнатуры метода:
import java.util.ArrayList;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
printList(new ArrayList<>());
}
public static void printList(List<String> list)
{
list.add("12345");
System.out.println(list);
}
}
Результат выполнения кода:
["12345"]
Смотрите также
-
оператор
diamond,
который представляет алмазный оператор -
тему
type-param,
которая описывает параметры типа -
тему
generic-method,
которая описывает обобщенные методы -
тему
raw-type,
которая описывает сырые типы