Я использую интерфейс API, связанный с данными, который имеет ключевую функцию обратного вызова void, которая автоматически вызывается, чтобы отметить окончание некоторых операций ввода-вывода. Я хочу создать класс Callable и использовать результат Future.
Я изо всех сил пытаюсь понять, как заставить Callable возвращать строку. Создание функции String returnResult(){return this.result для вызова внутри не подходит.
Пожалуйста, сообщите.
Это выглядит примерно так:
public class MyCallable implements someAPIWrapper, Callable {
String result;
@Override
public void endOfJobCallback() { //predefined API callback marking end of work
/*
usually read the data and write to a file, but not my case.
how to return this.result string from here?
*/
}
@Override
public String call() throws Exception {
//some logic stuff
//make API call to request a bunch of data
//inside a loop to listen to incoming messages, receiving and appending to the *result* variable
//end of all messages signalled by the ending callback, stop loop and return result var
}
}
class Main {
public static void main(String[] args){
MyCallable callable = new MyCallable();
ExecutorService executor = Executors.newFixedThreadPool(2);
Future future = executor.submit(callable);
String result = future.get(); //blocking until result ready
}
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... d-callback
Как Callable может вернуть значение из предопределенного обратного вызова void? ⇐ JAVA
Программисты JAVA общаются здесь
1719262469
Anonymous
Я использую интерфейс API, связанный с данными, который имеет ключевую функцию обратного вызова [b]void[/b], которая автоматически вызывается, чтобы отметить окончание некоторых операций ввода-вывода. Я хочу создать класс Callable и использовать результат Future.
Я изо всех сил пытаюсь понять, как заставить Callable возвращать строку. Создание функции String returnResult(){return this.result для вызова внутри не подходит.
Пожалуйста, сообщите.
Это выглядит примерно так:
public class MyCallable implements someAPIWrapper, Callable {
String result;
@Override
public void endOfJobCallback() { //predefined API callback marking end of work
/*
usually read the data and write to a file, but not my case.
how to return this.result string from here?
*/
}
@Override
public String call() throws Exception {
//some logic stuff
//make API call to request a bunch of data
//inside a loop to listen to incoming messages, receiving and appending to the *result* variable
//end of all messages signalled by the ending callback, stop loop and return result var
}
}
class Main {
public static void main(String[] args){
MyCallable callable = new MyCallable();
ExecutorService executor = Executors.newFixedThreadPool(2);
Future future = executor.submit(callable);
String result = future.get(); //blocking until result ready
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78664391/how-can-a-callable-return-a-value-from-a-predefined-void-callback[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия