РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
555 of 1163 menu

Метод map

Метод map класса Optional применяет переданную функцию к значению, содержащемуся внутри контейнера, и возвращает новый Optional с результатом применения этой функции. Если исходный Optional пуст, то метод возвращает пустой Optional, а переданная функция не вызывается. В параметр метода мы передаём функцию-преобразователь типа Function, которая принимает текущее значение и возвращает новое значение. Если переданная функция вернёт null, метод обернёт результат в пустой Optional через ofNullable.

Синтаксис

optional.map(Function<? super T, ? extends U> mapper)

Пример

Давайте преобразуем строку в её длину с помощью метода map:

import java.util.Optional; public class Main { public static void main(String[] args) { Optional<String> opt = Optional.of("abcde"); Optional<Integer> res = opt.map(String::length); System.out.println(res); } }

Результат выполнения кода:

Optional[5]

Пример

Давайте применим метод map к пустому Optional и убедимся, что функция не вызывается:

import java.util.Optional; public class Main { public static void main(String[] args) { Optional<String> opt = Optional.empty(); Optional<Integer> res = opt.map(String::length); System.out.println(res); } }

Результат выполнения кода:

Optional.empty

Пример

Давайте преобразуем строку в верхний регистр, а затем добавим к результату восклицательный знак, используя цепочку вызовов map:

import java.util.Optional; public class Main { public static void main(String[] args) { Optional<String> opt = Optional.of("abcde"); Optional<String> res = opt .map(String::toUpperCase) .map(s -> s + "!"); System.out.println(res); } }

Результат выполнения кода:

Optional[ABCDE!]

Пример

Давайте убедимся, что если функция вернёт null, то метод map вернёт пустой Optional:

import java.util.Optional; public class Main { public static void main(String[] args) { Optional<String> opt = Optional.of("abcde"); Optional<String> res = opt.map(s -> null); System.out.println(res); } }

Результат выполнения кода:

Optional.empty

Смотрите также

  • метод flatMap,
    который применяет функцию, возвращающую Optional
  • метод filter,
    который отбирает значение по условию
  • метод of,
    который создаёт Optional с непустым значением
  • метод isPresent,
    который проверяет наличие значения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить