Sobes.tech
Back to questions
Junior — Middle
69

Какими способами можно расширить возможности класса Any?

Companies where asked
Effective Mobile

Answer from AI

sobes.tech AI

Класс Any в Android (например, в Kotlin) представляет собой универсальный контейнер для хранения значения любого типа. Расширить его возможности можно следующими способами:

  • Расширяющие функции: добавить функции расширения для удобного извлечения или преобразования хранимого значения.

  • Обёртки и утилиты: создать вспомогательные классы или методы для безопасного и удобного доступа к содержимому Any.

  • Использование sealed классов или обобщений: для более строгой типизации и обработки различных вариантов содержимого.

Пример расширяющей функции для безопасного преобразования Any в нужный тип:

inline fun <reified T> Any?.safeCast(): T? = this as? T

val value: Any = "Hello"
val str: String? = value.safeCast<String>() // str будет "Hello"
val num: Int? = value.safeCast<Int>() // num будет null