Как бороться с лямбда-выражением в потоке Executor/FutureTask?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как бороться с лямбда-выражением в потоке Executor/FutureTask?

Сообщение Anonymous »


Вот мой класс задач:

публичный интерфейс TaskCallback { void onTaskCompleted (логический результат); void onTaskFailed (Исключение е); } общественный класс AsyncTaskExample { частный окончательный исполнитель-исполнитель = Executors.newSingleThreadExecutor(); public void ExecuteAsyncTask (обратный вызов TaskCallback) { FutureTask TaskSyncFiles = new FutureTask(() -> { // задача вернуть истину; }); исполнитель.execute(taskSyncFiles); исполнитель.execute(() -> { пытаться { Логический результат = TaskSyncFiles.get(); callback.onTaskCompleted(результат); } catch (InterruptedException | ExecutionException e) { callback.onTaskFailed(e); } }); } } Я бы хотел из другого метода (Activity в Android) вызвать асинхронную задачу и перехватить обратный вызов как лямбда, что-то вроде:

myTask.executeAsyncTask(результат -> { System.out.println("Задача выполнена с результатом: " + результат); }, е -> { е.printStackTrace(); }); но не могу заставить это работать. Как мне это сделать правильно?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»