Напишите метод, который будет запускать в отдельном потоке метод А, и возвращать результат его работы.
Anonymous #3131362
43 уровень
Не могу решить
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Anonymous #2484617 Backend Developer
30 июня 2023, 16:16
0
Anonymous #3131362
4 июля 2023, 10:03
Забыл упомянуть, что в методе А идет параметр int. То есть он выглядит так:
public static String A(int random) {...}
Когда я подставляю вызов метода А в скобки, где Callable, IDEA подчеркивает ошибку
![]()

0
Anonymous #2484617 Backend Developer
5 июля 2023, 01:00
Если непонятно, пиши, обсудим 0
Anonymous #3131362
5 июля 2023, 07:08
В этой строке: FutureTask<Object> futureTask = new FutureTask<>(() -> А(15));
что означает вот эта запись? : (() -> А(15))
0
Anonymous #2484617 Backend Developer
5 июля 2023, 08:34
Это лямбда выражение. Таким образом можно сокращать реализацию интерфейсов. У нас интерфейс Callable, у него есть метод call и его нужно реализовать. Если развернуть лямбда выражение в анонимный класс (что позволяет сделать среда разработки), то получим следующий наглядный пример:
![]()

0
hidden #3303140
5 июля 2023, 08:43полезный
Это лямбда-выражение, заменяющее собой создание объекта типа Callable<Object>, представленное анонимным классом:
Чтобы описать Callable, надо описать реализацию метода call().
Лямбда-выражение представляет собой сокращённую запись тела этого метода.
Скобки перед стрелкой описывают параметры (их нет), выражение после стрелки - это тело метода. Если тело состоит из одной команды, то return можно не писать:
+1
Anonymous #3131362
5 июля 2023, 10:10
Спасибо за развернутый ответ!
0