Конструкцию цикла for последнее время принято записывать упощённо без явного использования индекса, вроде бы понятно как это делать и всегда работало, но тут столкнулся с такой ситуацией:
@Override
protected void onPostExecute(String result) {
try {
JSONObject JOAnswer = new JSONObject(result);
JSONArray arr = JOAnswer.getJSONArray(fieldsJSON.rows.toString());
for (int i = 0; i < arr.length(); i++) {
JSONObject obj = arr.getJSONObject(i);
Double latitude = obj.getDouble(fieldsJSON.latitude.toString());
Double longitude = obj.getDouble(fieldsJSON.longitude.toString());
[.. ]
}
} catch (JSONException e) { e.printStackTrace();}
}
Выше код, который можно было бы записать без индекса. Типа:
for(JSONObject obj : arr)
Однако что-то идёт не так. (foreach not applicable to type org.json.JSONArray). Может я что-то не понимаю и for всё-таки можно записать без явного перебора индекса?
foreach работает только для классов, реализующих интерфейс java.lang.Iterable. JSONArray не реализует этот интерфейс, поэтому с ним нельзя работать через foreach. Вы можете реализовать паттерн Wrapper, завернуть в него JSONArray, реализовав во Wrapper и Iterable. Но замена for на foreach того не стоит.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Сейчас изучаю Java и усваиваю главные принципы ООП, хочу избежать повторяющегося однотипного кодаНиже я привел простой пример считывания...
Необходимо сделать много различных post запросов и хотелось бы заранее считывать изjson файла информацию для добавления в тело запроса
Есть div main, содержащий в себе div targetКак сделать при помощи flexbox так чтобы при изменении масштаба блоки target находились на своём месте?