В чем разница между коллекциями.emptyList() и коллекций.ПУСТОЙ СПИСОК
в Java, у нас есть сборники.emptyList() и сборники.EMPTY_LIST. Оба имеют одинаковое свойство:
возвращает пустой список (неизменяемые). Этот список можно сериализовать.
Так в чем же разница между использованием одного или другого?
4 ответа:
Collections.EMPTY_LIST
возвращает старый стильList
Collections.emptyList()
использует вывод типа и поэтому возвращаетList<T>
коллекций.emptyList () был добавлен в Java 1.5 и, вероятно, всегда предпочтительнее. Таким образом, вам не нужно без необходимости бросать вокруг в вашем коде.
Collections.emptyList()
внутренне делает бросок для вас.@SuppressWarnings("unchecked") public static final <T> List<T> emptyList() { return (List<T>) EMPTY_LIST; }
давайте перейдем к источнику:
public static final List EMPTY_LIST = new EmptyList<>();
и
@SuppressWarnings("unchecked") public static final <T> List<T> emptyList() { return (List<T>) EMPTY_LIST; }
Они абсолютно равные объекты.
public static final List EMPTY_LIST = new EmptyList<>(); public static final <T> List<T> emptyList() { return (List<T>) EMPTY_LIST; }
только что
emptyList()
возвращает genericList<T>
, Так что вы можете назначить этот список для общей коллекции без каких-либо предупреждений.