Мне нужно получить данные из API, поэтому, естественно, у меня есть обработчик конечных точек, доступ к которому осуществляется через лямбду, которая, я полагаю, порождает несколько потоков для завершения каждого вызова API, который мне нужен. Однако, после того, как все вызовы API завершены (все лямбда-потоки завершены), мне нужно организовать данные. В настоящее время метод Sort, который у меня есть, выполняется в главном потоке и, следовательно, завершается до завершения любого из вызовов API в лямбда-выражении. Вот образец того, что у меня
for(String data : dataArray) {
APIEndpoint apiCall = new APIEndpoint("http://sampleAPI.org/route/" + data);
apiCall.execute(((response, success) -> {
//Format and gather the info from the response
apiDataArray.add(DataFromAPIObject);
}));
}
System.out.print(apiDataArray.size());//Returns 0
sortData();//Currently Doesn't Sort anything because the array is empty
Edit: вот Конечный исполнитель, с которым я работаю:
https://github.com/orange-alliance/TOA-DataSync/blob/master/src/org/theorangealliance/datasync/util/FIRSTEndpoint.java