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

Класс Supplier

Класс Supplier - это функциональный интерфейс из пакета java.util.function, который представляет поставщика значений. Он не принимает никаких аргументов, но возвращает результат типа T. Единственный абстрактный метод этого интерфейса - get, который и выполняет основную работу: возвращает значение. Класс часто используется для ленивого создания объектов, генерации значений и в методах Stream, таких как generate.

Синтаксис

@FunctionalInterface public interface Supplier<T> { T get(); }

Пример

Давайте создадим простейший Supplier, который возвращает строку:

import java.util.function.Supplier; public class Main { public static void main(String[] args) { Supplier<String> supplier = () -> "abcde"; System.out.println(supplier.get()); } }

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

"abcde"

Пример

Давайте создадим Supplier, который генерирует случайное число:

import java.util.function.Supplier; public class Main { public static void main(String[] args) { Supplier<Double> supplier = () -> Math.random(); System.out.println(supplier.get()); } }

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

0.123456789

Пример

Давайте используем Supplier вместе с методом generate для создания потока из пяти строк:

import java.util.stream.Stream; public class Main { public static void main(String[] args) { Stream<String> stream = Stream.generate(() -> "abcde").limit(5); stream.forEach(System.out::println); } }

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

"abcde" "abcde" "abcde" "abcde" "abcde"

Пример

Давайте используем Supplier для ленивого создания списка:

import java.util.List; import java.util.function.Supplier; public class Main { public static void main(String[] args) { Supplier<List<Integer>> supplier = () -> List.of(1, 2, 3, 4, 5); System.out.println(supplier.get()); } }

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

[1, 2, 3, 4, 5]

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

  • метод get,
    который возвращает значение из Supplier
  • метод generate,
    который создает бесконечный поток с помощью Supplier
  • класс Stream,
    который представляет поток элементов
  • класс Function,
    который принимает аргумент и возвращает результат
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить