Назад к вопросам
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() для проверки готовности, но тогда придется обрабатывать ситуацию, когда результат еще не готов.