Создание экземпляра класса по его имени

Получение доступа к классу в режиме рантайм добавляет известной гибкости. Одна из типичных задач — создание экземпляра класса по его имени.

В котлин это делается вот так:

Есть несколько нюансов/рекомендаций.

Во-первых, IDE будет требовать от вас типизации для переменной obj. Здесь вы, скорее всего, будете использовать наследование некой группы классов от общего родителя или интерфейса. Т.е. className вероятнее всего принимает имена родственных классов.

У меня это были разные игровые локации, которые имели общего родителя Location.

Второй нюанс заключается в том, что лучше использовать полное имя класса, если класс находится в другом пакете. Т.е. это что то вида:

Ну и в третьих, не пренебрегайте обработкой исключений, если уж имя класса у вас вычисляется рантайм.

Мало букафф? Читайте есчо !

Сохранение файла в Downloads Android

Ноябрь 5, 2022 г.

Задача - создать файл в каталоге Downloads из вашего приложения на платформе Android. Пусть это будет какой то текстовый файл, который наше приложение умеет генерировать. Формат файла - XML. Наша задача решается по-разному для андроидов 10+ ...

Читать

Перебор изображений R.drawable

Ноябрь 21, 2022 г.

Рассмотрим как организовать перебор коллекции ресурсов в Kotlin на примере R.drawable. Типичная задача заключается в том, чтобы отфильтровать элементы коллекции по имени и вернуть список целочисленных идентификаторов, соответствующих вашим критериям. ...

Читать

Как получить строку из R.string по имени

Ноябрь 30, 2022 г.

В общем случае, когда вы находитесь в контексте Activity, это выглядит так: [crayon-69dec4673b403681630364/] При этом вызов getResources() в этом контексте и необязателен, т.е. работает и так: [crayon-69dec4673b40a466679241/] Если вы находитесь ...

Читать

Конструирование визуальных компонентов в kotlin

Март 11, 2023 г.

Android studio предоставляет набор стандартных компонентов, таких как TextView, LinearLayout и пр. Но довольно часто приходится оперировать группами таких ...

Читать
 

Комментарии к «Создание экземпляра класса по его имени»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: