Sobes.tech
Назад к вопросам
Junior — Middle
65

Каким образом извлечь строковое результат из объекта Future?

Ответ от нейросети

sobes.tech AI

В Java объект Future<String> представляет собой результат асинхронной операции, который может быть получен в будущем. Чтобы извлечь строковое значение из такого объекта, нужно вызвать метод get(), который блокирует текущий поток до тех пор, пока результат не будет готов.

Пример:

import java.util.concurrent.*;

public class FutureExample {
    public static void main(String[] args) throws Exception {
        ExecutorService executor = Executors.newSingleThreadExecutor();
        Future<String> future = executor.submit(() -> {
            Thread.sleep(1000); // имитация долгой операции
            return "Результат";
        });

        // Получаем результат (блокирует, если результат еще не готов)
        String result = future.get();
        System.out.println(result);

        executor.shutdown();
    }
}

Если нужно получить результат без блокировки, можно использовать метод isDone() для проверки готовности, но тогда придется обрабатывать ситуацию, когда результат еще не готов.