Меня всегда раздражало (в моем коде тоже) "трекание" предыдущего состояния цикла. Лет 5 назад я стал интересоваться ФП и там есть такое решение как zip одной коллекции самой с собой со сдвигом в 1 элемент. После такого сдвига подсчет превращается в достаточно плоскую формулу типа stream-pipeline.
Возможно удастся красиво это записать на C++20/Boost.
chvertkos, выпадающие списки не имеют никакого отношения к языку SQL. Или тебе надо задавать вопрос конкретно по MS-Access. Это - другое приложение со своими нюансами.
Artutit, короче смотри. Всем лень разбирать и мне лень. Запускаешь. Становишся дебаггером на эту подозрительную строчку и смотришь состояние объекта DataSnapshot. Что у него внутри? Какие методы? Как их вызвать. Я - не андроид разработчик и не знаю FireBase но ошибка явно указывает на то что ты не знаешь что у тебя внутри дата снапшота или (!) неправильно его используешь.
В этой задаче возможны 2 вида ответов. Первое - это разблокировать новичка и дать ему возможность работать. И второе - раскрыть ему страшную магию метапрограммирования. Последнее - потребует от новичка больших мозговых усилий. И эффект будет не скоро. Фактически это закладка на будущее. Что почитать.
Artutit, йошкин крот. Я не знаю что такое ChildEventListener. Я не знаю какие ты библиотеки и фреймворки подключаешь к проекту. Вообще их тысячи для Java. Но твоя ошибка указывает на неверный тип. Для ясности надо привозить хотя-бы твои pom.xml или build.gradle.
Ну я не знаю что такое DataSnapshot. Покажи его исходники. Что у него за контракт для входных параметров. Что он возвращает. Ты-же как-то написал этот код. Значит где-то взял пример или основание для того.
Adamos, бох с вами. Мне ваши кейсы не нужны. Я просто говорю о своём опыте рефакторинга. Не пригодились мне фигурные скобочки аж никогда. Или просто везло мне. Или мы сложность выносили в методы и функции.
Adamos, я думаю если эту идею развивать глубоко, то окажется что и такой вложенный цикл тоже не нужен. Внутри switch нужна инициализация итератора или некого sequence-выражения которое бежит вперед или назад. Моё мышление уже слегка деформировано Scala и Haskell и я везде вижу функции. И switch для меня - уже функция а не оператор. Нет конешно в работе всяко бывает. Но я-бы всегда шел по пути выбрасывания дубликации кода. И если его выбросить по максимуму то внезапно окажется что даже фигурные скобочки не нужны. Все станет очень просто.
Adamos, я думаю что вы решаете несуществующие проблемы. Я готов признать полезность операции scope в том случае когда код генерируется кодо-генераций (парсеры, конечные автоматы) но заставлять человека-разработчика ставить лишнюю пару скобок просто так на всякий случай я-бы не стал. А игры с областью видимости
for(int i = 0;i < 10; i++) {{
for(int i = 0;i < 10; i++) printf("%d",i);
}}
порождают странные сниппеты кода, которые хотя и проходят компилляцию тем не менее вызывают WTF во время коде-ревью.
MasterCopipaster, смотри. В графических - почти везде используется не алгоритм а сверточная нейронная сеть (convolution network). Но твой кейс - узкий и возможно где-то можно "срезать углы".
Меня всегда раздражало (в моем коде тоже) "трекание" предыдущего состояния цикла. Лет 5 назад я стал интересоваться ФП и там есть такое решение как zip одной коллекции самой с собой со сдвигом в 1 элемент. После такого сдвига подсчет превращается в достаточно плоскую формулу типа stream-pipeline.
Возможно удастся красиво это записать на C++20/Boost.