Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
6 / 5 / 1
Регистрация: 27.06.2017
Сообщений: 249

Асинхронный класс

08.06.2019, 01:04. Показов 588. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю голосового помощника.Он может ответить на вопросы,которые содержатся в HashMap, но также может узнавать погоду из api.Для api я создаю асинхронный класс и возвращаю значение,когда я все данные распарсил.Но если пользователь написал "Привет, какая погода в городе москва" ,то он должен ответить :"Хай!Солнечно,где-то 25 градусов",но из-за того,что на вопрос "привет" от отвечает мгновенно,а на вопрос про погоду он должен "подумать",потому что соединяется с етья,делает запрос и тд.Но мне все данные нужно собрать в одну строку.Как это сделать?

Мои попытки не увенчались успехом и возращают пустоту
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
answers-все ответы(то есть на вопрос "привет,пока" ответит "Хай!,До скорой встречи")
user_question-вопрос пользователя
*/
if (matcher.find()){
            String cityName = matcher.group(1);
            Weather.getWeather(cityName, new Consumer<String>() {
                @Override
                public void accept(String weather_forecast) {
                   answers.add(weather_forecast);
                   //callback.accept(String.join(", ",answers));
                }
            });
            flag=true;
        } if(user_question.contains("какой сегодня день")) {
            Locale local = new Locale("ru","RU");
            SimpleDateFormat dateFormat = new SimpleDateFormat("EEEE, d MMMM yyyy (dd.MM.yyyy)",local);
            answers.add("Сегодня " + dateFormat.format( new Date() ));
            //callback.accept(String.join(", ", answers));
            flag=true;
        }  if(user_question.contains("сколько сейчас времени")) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("k:mm:ss");
            answers.add("Текущее время: " + dateFormat.format( new Date() ));
            //callback.accept(String.join(", ", answers));
            flag=true;
        }if(user_question.contains("расскажи афоризм")) {
            Aphorism.getQuote(new Consumer<String>() {
 
                @Override
                public void accept(String Quote_text) {
                    answers.add(Quote_text);
                   // callback.accept(String.join(", ",answers));
                }
            });
            flag=true;
        }
                if (answers.isEmpty() && !flag) {
                    answers.add("Простите,но я не знаю такой команды");
                }
 
                callback.accept(String.join(", ", answers));
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.06.2019, 01:04
Ответы с готовыми решениями:

Не компилится асинхронный сервлет
привет делаю сервлет (технология 3.0) web.xml - не трогал перед классом сервлета ставлю аннотацию: @WebServlet...

Что такое асинхронный вызов и как его осуществить в java ?
Понял, что не совсем понимаю, что такое асинхронный вызов. Одно время мне казалось, что асинхронный вызов это например тогда, когда мы...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени?
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

1
 Аватар для _Vladimir_
57 / 55 / 10
Регистрация: 27.07.2010
Сообщений: 279
20.06.2019, 18:48
ИМХО тебе надо или на каждый вопрос отвечать асинхронно, или только на те, которые работают с внешними ресурсами, установив при этом максимальное время ожидания.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.06.2019, 18:48
Помогаю со студенческими работами здесь

Асинхронный код и GC
Всем привет. У меня есть класс, который в конструкторе запускает асинхронную операцию для работы с сокетами. Скажите, пожалуйста, когда GC...

Асинхронный RPC
Нужно реализовать простейший RPC. Использование стандартный не позволяет религия :) На стороне сервера идет обработка входящих команд, а...

Асинхронный поток
Как заставить поток остановиться и стартовать по нажатию кнопок? На форме две кнопки запуска и остановки работы программы в асинхронном...

Асинхронный сервер
Есть идея небольшого проекта, для его реализации необходимо написать сервер, который будет работать одновременно с несколькими...

асинхронный сервер
Не могу определить выполняется ли метод в отдельном потоке имеется код public ClientConnection(Socket AcceptedSocket) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3, Box2D, FreeType и SDL3_ttf из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru