Sobes.tech
Back to questions
Junior — Middle
62

Как получить значение из ленивого (Lazy) объекта в вашем приложении?

Companies where asked
СБЕР ТехСБЕР Тех

Answer from AI

sobes.tech AI

В Java ленивый (Lazy) объект обычно реализуется через отложенную инициализацию, например, с помощью класса Lazy<T> или паттерна ленивой загрузки.

Чтобы получить значение из ленивого объекта, нужно вызвать метод, который инициализирует и возвращает значение при первом обращении. Например, если используется Supplier<T> или Optional<T>, можно вызвать get().

Пример с использованием Supplier для ленивой инициализации:

import java.util.function.Supplier;

public class LazyExample {
    private Supplier<String> lazyValue = this::initialize;

    private String initialize() {
        String value = "Вычисленное значение";
        lazyValue = () -> value; // Кэшируем результат
        return value;
    }

    public String getValue() {
        return lazyValue.get();
    }

    public static void main(String[] args) {
        LazyExample example = new LazyExample();
        System.out.println(example.getValue()); // Получаем значение
    }
}

Таким образом, вызов getValue() возвращает значение, инициализируя его при первом обращении.