Использование ключ слова final для полей объектов внутри класса в JAVA и DART (последствия игнорирования)

Может ли код на DART(Flutter) при выполнении (т.е. в runtime) работать неправильно или выполнять лишнюю работу если у меня в объектах, в которых хранятся данные для отображения и в функциях нигде нет ключевого слова final у полей? Возможно ли составить программу на DART, которая на этапе компиляции не будет выдавать ошибок, но будет работать по-разному с использованием и без использования ключевого слова final в полях объекта?

Предыстория: В раннем домашнем проекте на DART(Flutter) проигнорировал правило, которое прочитал в книгах и на сайтах об использовании final: если можно то делаем переменную Dart типа const, если нельзя то пробуем ее сделать final, а если и это нельзя то просто указываем ее без ключевых слов const или final. Насколько я понял слово final позволяет инициализировать переменную(присвоить ей значение) только один раз. После этого значения простых типов менять нельзя, а содержимое коллекций можно менять. Думаю, что ссылка со словом final на объект меняться не может. В домашнем проекте Flutter происходит работа c SQFLITE базой данных, есть несколько экранов с навигацией по ним, и происходят различные асинхронные SQL запросы с отображением результатов в виджетах, но практически мало где я использовал ключевое слово final.


Ответы (0 шт):