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

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

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

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

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

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

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

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

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

Как изменить цвет фона приложения

Январь 14, 2025 г.

Когда вы проектируете макет активити в android studio вы можете у корневого контейнера задать цвет фона выбрав соответствующее значение атрибута android:background. Как в примере ниже - черный фон [crayon-6895ed6e7ea44612002199/] Это будет ...

Читать

Вызов диалога выбора файла и загрузка содержимого в kotlin

Ноябрь 26, 2022 г.

Пишу небольшое приложение в Android Studio, как и многие столкнулся с типовой задачей - диалог выбора файла и его загрузка. Ясно, что устройство уже имеет какой то файловый менеджер, и писать свой диалог - хоть и интересно, но является и тратой ...

Читать

Анимированный градиент в ActionBar

Октябрь 23, 2022 г.

Расскажу как создать фон для actionbar с анимацией градиента цвета. Нам понадобится Android Studio и Kotlin. Для начала добавим drawable ресурс в наш проект. Откроем в проекте вкладку res/drawable и выберем из меню File -> New -> Drawable ...

Читать

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

Ноябрь 30, 2022 г.

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

Читать
 

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

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



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